2 votes

Comment restreindre une URL particulière en utilisant le Reverse Proxy ajp d'Apache

J'utilise Apache Reverse Proxy Voici quelques exemples Apache Virtual Host configuration

ProxyRequests Off
<Proxy *>
        AddDefaultCharset off
        Order deny,allow
        Allow from all
</Proxy>
ProxyVia On
ProxyRequests Off
ProxyPreserveHost On
proxyPass /        ajp://127.0.0.1:8009/

Je souhaite maintenant restreindre request url comme http://mysite.com/admin/tools de manière à ce que qu'il permette l'accès à partir d'un IP address seulement. Comment puis-je y parvenir ?

EDITAR:

A partir de l'exigence ci-dessus cette réponse fonctionne bien. Supposons que je veuille autoriser l'accès à admin URL d'un ou deux IP's et se reposer IP's Je veux rediriger vers index au lieu d'afficher forbidden error Comment puis-je l'obtenir ?

2voto

Krist van Besien Points 1822

Quelle version d'Apache utilisez-vous ? Une façon de restreindre l'accès aux ressources en fonction de l'URL est d'utiliser l'option

Par exemple :

<Location /admin/tools>
  Order Deny,Allow
  Deny from all
  Allow from 192.168.1.34
</Location>

1voto

antiduh Points 101

Supposons que je veuille autoriser l'accès à l'URL d'administration à partir d'une ou deux IP et que je veuille rediriger les autres IP vers la page d'index au lieu d'afficher une erreur interdite, comment puis-je y parvenir ?

Pour compléter la réponse de @krist-van-besien, vous pouvez le faire à l'aide de ErrorDocument para 403 Interdit comme ceci :

<Location /admin/tools>
  Order Deny,Allow
  Deny from all
  Allow from 192.168.1.34
  ErrorDocument 403 /index.php
</Location>

Veuillez noter que l'utilisateur doit avoir le droit de visualiser la page vers laquelle vous le redirigez. Pour plus d'informations, vous pouvez consulter cette question : Autoriser l'IP bloqué à voir le document d'erreur 403

0voto

dutt Points 2866

Pour développer ce scénario et l'appliquer à un point de terminaison d'un service web RESTful par rapport à l'appel d'un point de terminaison à partir d'une page web.

Existe-t-il un moyen de transmettre par proxy les demandes provenant de la page web d'un serveur local à l'adresse du service web, tout en autorisant les demandes du réseau interne local (développeurs) à accéder au point de terminaison du service web, tout en limitant les demandes externes directes du point de terminaison WS ?

Par exemple, si le service web tourne sur Tomcat (port 8080) et que nous utilisons mod_proxy pour rediriger les requêtes Apache de la page web sur le port 80 -> tomcat:8080/webservice dans les appels de service de notre page web.

        <Location /admin/tools>
            Order Deny,Allow
            Deny from all
            Allow from localhost
            Allow from 127.0.0.1
            Allow from *local.domain.com
        </Location>
        ProxyPass /admin/tools http://localhost:8080/admin/tools
        ProxyPassReverse /admin/tools http://localhost:8080/admin/tools

Lorsque j'essaie cela, l'accès à l'ensemble du point de terminaison WS est bloqué, y compris la demande de page web envoyée au point de terminaison du proxy.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X