web-dev-qa-db-fra.com

Autoriser la demande provenant uniquement d'une adresse IP spécifique

J'ai hébergé une application Apache UNIX et j'autorise les utilisateurs à accéder à l'URL de l'application depuis l'environnement citrix (depuis la machine citrix).

Cependant, il est actuellement possible d'accéder à l'url depuis toutes les machines connectées. Je voudrais mettre la restriction qu'il ne doit être accessible qu'à partir de la machine citrix. Donc, si quelqu'un a besoin d'y accéder, il doit avoir accès à la machine Citrix.

J'ai essayé avec ci-dessous:

<Directory /APP>

    Order Deny,Allow

    Deny from all

    Allow from 160.120.25.65

    Allow from 127

</Directory>

ça n'a pas marché. Toute suggestion?

Peu ont répondu avec une solution iptables, cependant celle-ci est chargée sur Solaris (elle n'a pas de pare-feu intégré à OS comme linux).

23
Mutant

Cela devrait faire ce dont vous avez besoin:

<Directory /APP>

    Order Allow,Deny

    Allow from 160.120.25.65
    Allow from 127.0.0.0/8

</Directory>

Voir le mod_authz_Host documentation pour plus de détails.

49
David Schmitt

Quelle version d'Apache utilisez-vous? Les mécanismes d'autorisation IP sont, AFAIK, fournis par mod_authz_Host, qui a été introduit en 2.2 (enfin, 2.1 techniquement). Si vous avez la version 2.2, assurez-vous qu'elle n'a pas été compilée avec mod_authz_Host désactivé.

D'une manière générale, cependant, vous pouvez trouver une solution plus simple et plus robuste: les iptables ou autres pare-feu suggérés dans les autres réponses.

2
Jarret Hardie

Je suggérerais Iptables à cet effet. mettre une règle dans les iptables que partout où le port de destination est le numéro de port de votre machine Apache et l'ip source est l'adresse ip de la machine critix, la machine linux doit supprimer ce paquet. De cette façon, votre problème serait résolu à condition qu'aucune autre application hébergée sur l'Apache de votre machine ne doive être ouverte pour tous les ips. Un exemple de la règle de perspective pourrait être: -

iptables -I INPUT 1 -s 160.120.25.65 -d <port_of_Apache_on_your_machine> -j DROP

Cela devrait résoudre votre problème, une fois que vous le remplacez par sa valeur appropriée

0
stack programmer