CGI Proxy
De Linuxmemo.
http://www.jmarshall.com/tools/cgiproxy/
[modifier] Installer simplement CGI Proxy (sans SSL)
Tout d’abord, vous devez avoir les logiciels suivants installés sur votre machine:
- un serveur sous Linux(çà devrait marcher sur tous les OS…)
- Apache2 (un autre serveur web devrait faire l’affaire mais je n’ai pas testé…)
- Perl
Des commandes comme :
#apt-get install perl apache2
devrait plus ou moins régler les choses sur Debian et les Debian-like… Pour la suite de l’article, je suppose que vous utilisez une distribution Debian Sarge.
Dirigez vous vers /etc/apache2/sites-available
#cd /etc/apache2/sites-available
Créez un nouveau site web, disons que vous avez le nom de domaine test.fr, créez ainsi le sous domaine cgiproxy.test.fr :
#vim cgiproxy.test.fr
et insérez les lignes suivantes :
<VirtualHost *> ServerAdmin admin@test.fr DocumentRoot /var/www/cgiproxy.test.fr ServerName cgiproxy.test.fr ErrorLog /var/log/apache2/cgiproxy.test.fr.error.log CustomLog /var/log/apache2/cgiproxy.test.fr.access.log common AddHandler cgi-script .cgi <Directory /var/www/cgiproxy.test.fr> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Order allow,deny Allow from all Options +ExecCGI </Directory> </VirtualHost>
Pour que ce nouveau site soit fonctionne, n’oubliez de faire un lien symbolique de cette configuration dans /etc/apache2/sites-enabled :
#cd /etc/apache2/sites-enabled #ln -s /etc/apache2/sites-available/cgiproxy.test.fr
et de bien sûr créer le répertoire désigné dans votre configuration:
#mkdir /var/www/cgiproxy.test.fr
On redémarre Apache2 pour que la configuration soit prise en compte :
#/etc/init.d/apache2 restart
Petite note pour ceux qui n’ont pas de nom de domaine ou ne sachant pas comment créer un site sous Apache 2 : Vous avez sans doute dans /etc/apache2/sites-available un site (fichier de configuration) qui s’appelle 000-default, qui pointe vers des fichiers dans /var/www : vous pouvez aussi bien l’utiliser en adaptant cet article (chemins et sites)
Rendez vous dans /var/www/cgiproxy.test.fr et téléchargez le script CGI CGI Proxy :
#wget http://www.jmarshall.com/tools/cgiproxy/releases/cgiproxy.2.1beta15.tar.gz
Pour avoir la dernière version, veuillez consulter le site officiel CGI Proxy
On décompresse l’archive ainsi récupérée :
#tar xvzf cgiproxy.2.1beta15.tar.gz
Et si tout s’est bien passé, en dirigeant son navigateur vers http://cgiproxy.test.fr/nph-proxy.cgi on doit avoir le formulaire de saisie d’URL de CGI Proxy ! Si toutefois cela ne fonctionne pas, n’hésitez pas à laisser un commentaire à cet article, mais commencez par vérifier :
- que vos chemins sont bons
- que vous n’avez pas renommé nph-proxy.cgi en quelquechose.cgi (il faut impérativement que le nom du fichier commence par nph-)
- que le script est exécutable :
#chmod +x nph-proxy.cgi
[modifier] Installer CGI Proxy en mod ssl :
Un peu plus difficile cette fois-ci, cette partie de l’article s’adresse aux personnes ayant déjà mis en place des sites Apache2 en mod_ssl.(un jour j’écrirai un article pour l’expliquer !).
Pour faire simple, et rapide, inspirez vous de mon fichier de configuration :
<VirtualHost *:443> ServerAdmin admin@cgiproxy.test.fr DocumentRoot /var/www/cgiproxy.test.fr ServerName cgiproxy.test.fr ErrorLog /var/log/apache2/cgiproxy.test.fr.error.log CustomLog /var/log/apache2/cgiproxy.test.fr.access.log common AddHandler cgi-script .cgi SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.pem SSLProxyEngine On <Directory /var/www/cgiproxy.test.fr> AllowOverride FileInfo AuthConfig Limit Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec DirectoryIndex nph-protected.cgi AuthUserFile /var/www/cgiproxy.test.fr/.htpasswd AuthName « Welcome to Protected Site » AuthType Basic Require valid-user Options +ExecCGI </Directory> </VirtualHost>
Un peu d’explication !
<VirtualHost *:443>
vous permet de déclarer un serveur virtuel écoutant sur le port 443 (https par défaut) AddHandler cgi-script .cgi permet à Apache 2 de lancer le moteur d’interpréteur de CGI lorsque les fichiers demandés terminent par .cgi DirectoryIndex nph-protected.cgi indique à apache que le fichier index par défaut est : nph-protected.cgi (situé dans /var/www/cgiproxy.test.fr) lorsque qu’aucun nom de fichier est spécifié. AuthUserFile permet de mettre en place une sécuristation HTTP Basic (login/mot de passe demandé pour accéder à la ressource)
Source: http://blog.dahanne.net/2007/03/09/installation-de-cgi-proxy-solution-de-proxy-http/