Que ce soit pour obtenir une adresse IP différente ou pour passer au travers des règles de filtrages de certains sites/firewalls,
vous pouvez avoir l’envie de faire transiter votre flux web par votre serveur Apache personnel.
Pour ceci nous allons créer un hôte virtuel dédié à cette usage, l’ouverture d’un proxy sans authentification étant extrêmement dangereuse car n’importe qui peut utiliser votre IP, nous allons donc recourir à une authentification de type HTTP/Basic pour en sécuriser l’accès.
Attention ici il n’est absolument pas question de chiffrer le flux HTTP, c’est une simple redirection de ce dernier vers un nouveau point de sortie, qui plus est les requêtes DNS sont toujours traitées par votre serveur DNS habituel, gardez donc à l’esprit que cette technique ne vous rends pas invisible, notamment vis à vis de votre réseau local.
J’ai choisi ici le port 443 pour héberger le service, tout d’abord parce que c’est un port qui est généralement toujours ouvert quelque soit l’endroit d’où l’on se connecte et ensuite car je n’ai pas de site HTTPS hébergé sur cette machine. A vous de faire votre choix pour ce paramètre.
Il vous faut dans un premier temps créer un fichier contenant les couples login/mot de passe avec la commande htpasswd :
htpasswd -c /etc/apache2/htpasswd username
On vas ensuite créer le fichier de configuration de notre vhost dans le dossier /etc/apache2/sites-available/proxy :
<VirtualHost *:443>
ServerName proxy.mydom.fr
DocumentRoot /var/www/proxyjailProxyRequests On
ProxyVia Onphp_value engine off
<Proxy *>
AuthType Basic
AuthName « Restricted Area »
AuthUserFile /etc/apache2/htpasswd
require valid-userOrder deny,allow
Allow from all
</Proxy><Directory /var/www/proxyjail>
AllowOverride None
Options -All
</Directory></VirtualHost>
Certes notre virtual host ne vas normalement pas être utilisé pour délivrer du contenu HTML local — encore moins PHP ou un autre langage de scripting d’ou la presence de la ligne « php_value engine off » — il est cependant obligatoire qu’il dispose d’un DocumentRoot. Utiliser /var/www comme DocumentRoot dans notre cas permettrait certainement à un utilisateur malveillant d’accéder à beaucoup de choses qu’il ne devrait pas.
Nous allons donc créer le dossier /var/www/proxyjail et s’en servir pour enfermer les utilisateurs du proxy à l’intérieur. ( Attention ici il n’est pas question de chroot ).
mkdir /var/www/proxyjail
chmod 744 /var/www/proxyjail
touch /var/www/index.html
Pour finir il suffit d’activer le vhost et de relancer apache
a2ensite proxy
apache2ctl configtest && /etc/init.d/apache2 restart
Il ne vous reste plus qu’à configurer votre navigateur pour qu’il utilise votre proxy et le tour est joué :
