Outils personnels

Mod Proxy : Différence entre versions

De wikiGite

(Configuration en proxy-forward)
(2 modes de fonctionnement)
Ligne 7 : Ligne 7 :
 
=== 2 modes de fonctionnement ===
 
=== 2 modes de fonctionnement ===
 
*<u>Proxy-Forward</u> :
 
*<u>Proxy-Forward</u> :
Les utilisateurs situés dans un réseau local accèdent à un serveur Web situé sur Internet par l'intermédiaire du serveur proxy. Ils doivent donc obligatoirement passer par le proxy pour aller sur Internet.
+
Les utilisateurs situés dans un réseau local accèdent à un serveur Web situé sur Internet par l'intermédiaire du serveur proxy. Ils doivent donc obligatoirement passer par le proxy pour aller sur Internet. Le poste client doit être configuré pour utiliser le proxy, ce n'est donc pas transparent.
 
*<u>Reverse-Proxy</u> :
 
*<u>Reverse-Proxy</u> :
L'utilisation d'Apache mod_proxy (reverse-proxy) permet aux utilisateurs externes d'accéder à un serveur Web interne (dans un LAN derrière un pare-feu) via un serveur proxy (situé en DMZ).  
+
L'utilisation d'Apache mod_proxy (reverse-proxy) permet aux utilisateurs externes d'accéder à un serveur Web interne (dans un LAN derrière un pare-feu) via un serveur proxy (situé en DMZ). Pas de configuration ni du client ni du serveur, c'est transparent
  
 
[[Fichier:Apache_Proxy.jpg]]
 
[[Fichier:Apache_Proxy.jpg]]

Version du 16 août 2011 à 14:30

Principe de fonctionnement

Doc. Apache  : http://httpd.apache.org/docs/2.3/mod/mod_proxy.html

Doc. Developpez.com  : http://julien-pauli.developpez.com/tutoriels/web/http/?page=page_7

2 modes de fonctionnement

  • Proxy-Forward :

Les utilisateurs situés dans un réseau local accèdent à un serveur Web situé sur Internet par l'intermédiaire du serveur proxy. Ils doivent donc obligatoirement passer par le proxy pour aller sur Internet. Le poste client doit être configuré pour utiliser le proxy, ce n'est donc pas transparent.

  • Reverse-Proxy :

L'utilisation d'Apache mod_proxy (reverse-proxy) permet aux utilisateurs externes d'accéder à un serveur Web interne (dans un LAN derrière un pare-feu) via un serveur proxy (situé en DMZ). Pas de configuration ni du client ni du serveur, c'est transparent

Apache Proxy.jpg

Configuration en proxy-forward

A compléter et tester.

Sur le proxy

Créer un vhost avec le contenu suivant :

ProxyRequests On
ProxyVia On

<Proxy *>
Order deny,allow
Deny from all
Allow from All
</Proxy

Sur les clients

Configurer le navigateur (dans les paramètres de connexion) pour passer par le proxy.

Configuration en reverse-proxy (Sur Debian)

Pré-Requis

  • Un serveur situé dans la DMZ avec apache2 (serveur proxy)
  • Le serveur Web situé dans le réseau local avec apache2 et un vhost accessible
  • Dans le pare-feu, le port 80 (par exemple) doit être autorisé entre le proxy et le serveur Web interne

Activation du module mod_proxy sur le proxy

a2enmod proxy
/etc/init.d/apache2 restart

Création d'un virtual host <nom_du_vhost> sur le proxy

Créer le fichier <nom_du_vhost> dans /etc/apache2/sites-available/ avec le contenu suivant (où ProxyPass pointe vers un vhost du serveur Web local) :

<VirtualHost *:80>
     ServerName   proxy.domaine.fr
     <Location />
        ProxyPass http://local.domaine.fr/
     </Location>
</VirtualHost>
a2ensite <nom_du_vhost>
/etc/init.d/apache2 restart

Configuration en reverse-proxy (Sur CentOS/BlueOnyx)

Pré-Requis

  • Un serveur situé dans la DMZ avec apache2 (serveur proxy)
  • Un poste client avec un navigateur sur le réseau local
  • Dans le pare-feu, le port 8080 (par exemple) doit être autorisé entre le proxy et le serveur Web interne

Activation du module mod_proxy sur le proxy

Dans la BlueOnyx, le module mod_proxy est chargé automatiquement dans le httpd.conf.

LoadModule proxy_module modules/mod_proxy.so

Création d'un virtual host sur le proxy

Il suffit de créer un virtual host via l'interface Web de la BlueOnyx.

Dans notre cas, nom du vhost : proxy.domaine.fr

Il faut ensuite éditer le fichier /etc/httpd/conf/vhosts/site1 comme ci-dessous :

# owned by VirtualHost
NameVirtualHost 192.168.1.12:80

# FrontPage needs the following four things to be here
# otherwise all the vhosts need to go in httpd.conf, which could
# get very large since there could be thousands of vhosts
ServerRoot /etc/httpd

<VirtualHost 192.168.1.12:80>
    <Location />
       ProxyPass http://local.domaine.fr/
    </Location>

ServerName proxy.domaine.fr
ServerAdmin admin
#DocumentRoot /home/.sites/28/site1/web
#ErrorDocument 401 /error/401-authorization.html
#ErrorDocument 403 /error/403-forbidden.html
#ErrorDocument 404 /error/404-file-not-found.html
#ErrorDocument 500 /error/500-internal-server-error.html
#RewriteEngine on
#RewriteCond %{HTTP_HOST}                !^192.168.1.12(:80)?$
#RewriteCond %{HTTP_HOST}                !^proxy.domaine.fr(:80)?$ [NC]

#RewriteRule ^/(.*)                      http://proxy.domaine.fr/$1 [L,R=301]
#RewriteOptions inherit
#AliasMatch ^/~([^/]+)(/(.*))?           /home/.sites/28/site1/users/$1/web/$3
#Include /etc/httpd/conf/vhosts/site1.include
# BEGIN WebScripting SECTION.  DO NOT EDIT MARKS OR IN BETWEEN.
# END WebScripting SECTION.  DO NOT EDIT MARKS OR IN BETWEEN.
# BEGIN PHP SECTION.  DO NOT EDIT MARKS OR IN BETWEEN.
# END PHP SECTION.  DO NOT EDIT MARKS OR IN BETWEEN.
</VirtualHost>
# end of VirtualHost owned section

A creuser

  • Possibilité d'utiliser un tunnel sécurisé (SSL) entre le proxy et le ou les serveur(s) en interne.
  • Load_balancing entre plusieurs serveurs