CGI Proxy

De Linuxmemo.

Version du 23 janvier 2013 à 11:43 par Linuxmemo (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

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/

Outils personnels