Home (autres pages) Léa Linux TrustOn Me OpenVPN French Linux Doc Project

Configuration du service Proxy

  • Fonctionnement
  • Installation d'Apache
  • Compilation et installation
  • Démarrage du service

Configuration du service Proxy

Fonctionnement

J'ai préféré utilisé le service "proxy" proposé par le serveur Apache. En fait, les requêtes "HTTP" et "FTP" ne sont pas transmises depuis un poste client sur l'Internet mais l"envoi au serveur "proxy" qui va ensuite se charger de l'envoyer sur le net. Le serveur "proxy" peut appliquer des traitements à la requête.

Installation d'Apache

Je commence par supprimer les paquetages installés par la Mandrake, je télécharge le dernier "tarball" (tarball, c'est une archive "tar" ou une archive "tar" compréssée avec gzip ou bzip2) d'Apache puis je compile et installe.

Pour récupérer la liste des paquetages installés avec la mandrake :

# rpm -qa | grep apache

Pour supprimer les paquetages (dans mon cas) :

# rpm -e apache2-2.0.47-4mdk apache2-common-2.0.47-4mdk

Ensuite je télécharge et j'installe Apache :

Création d'un répertoire particulier où je stocke les fichiers sources
[/]# mkdir /compil
[/]# cd /compil

Récupération du tarball
[/compil]# wget http://apache.crihan.fr/dist/httpd/httpd-2.0.48.tar.gz

Décompression du tarball
[/compil]# tar xzvf httpd-2.0.48.tar.gz

[/compil]# cd httpd-2.0.48
[/compil/httpd-2.0.48]#

Compilation et installation
On ajoute le module proxy au serveur apache
[/compil/httpd-2.0.48]# ./configure --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http

On compile et on installe
[/compil/httpd-2.0.48]# make
[/compil/httpd-2.0.48]# make install

Apache est installé dans le répertoire "/usr/local/apache2". On aurait pu changer le répertoire de destination mais... boaaah... aller hop !


Configuration

Le fichier de configuration est "/usr/local/apache2/conf/httpd.conf".

Tout d'abord, j'ai modifié le port d'écoute qui est, par défaut, le port 80 par 8080.

# listen 80
listen 8080

Ensuite, je rajoute, à la fin du fichier, l'utilisation du module "proxy" :

<IfModule mod_proxy.c>
</IfModule>

ProxyRequests On
ProxyVia On

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

On autorise seulement les postes du LAN privé à accéder au serveur Proxy. La ligne Order définit l'ordre de vérification des règles Deny et Allow. On utilise la règle Deny pour définir ce que l'on interdit, c'est à dire "tout" dans notre cas. Ensuite, on autorise les adresses privées. Ainsi une machine d'Internet, avec une adresse publique, ne pourra pas utiliser notre serveur ! Sans ces deux règles, n'importe qui pourrait utiliser notre serveur et "rebondir" sur notre passerelle pour surfer !


Démarrage du service

[/usr/local/apache2]# bin/httpd start

On vérifie que le serveur fonctionne

# netstat -apn | grep httpd
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1717/httpd
#

Pour lancer le service Apache au démarrage, il faut copier le script de démarrage dans le répertoire "/etc/init.d" et de créer des liens symboliques dans les répertoires "/etc/rc.d/rc3.d", "/etc/rc.d/rc4.d" et "/etc/rc.d/rc5.d". Ainsi en modifiant les niveaux d'exécution de Linux, le service serait démarré et arrêté correctement. Je suis fainéant, j'ai simplement rajouté une ligne dans le fichier "/etc/rc.d/rc.local" pour le démarrer....

Ensuite, il suffit de configurer l'explorateur Internet (FireFox, Netscape ou pire Internet Explorer) pour utiliser le serveur proxy...

Adresse du serveur proxy: 192.168.0.1

Port du proxy : 8080

Il est toujours possible de surfer sans proxy, les trames en destination d'un serveur Web sur le Net (adresse publique et port 80) partent du client, arrivent sur la passerelle et sont transférée, nattée et envoyée.

Si l'on veut supprimer cette possibilité, il suffit d'ajouter une règle dans un parefeu. Pourquoi ? Eh bien beaucoup de programmes qui tournent sous Windows tentent de se connecter sur des serveurs, par forcément des serveurs Web d'ailleurs, sur le port 80. On peut interdire cela...

# iptables -A FORWARD -p tcp -s 192.168.0.0/24 -d 80 -i eth0 -j DROP
   -A FORWARD: ajoute (append) à la chaîne FORWARD
   -p tcp : trame TCP (une trame TCP contient l'information des ports sources et destination)
   -s 192.168.0.0/24 : adresses IP source
   -i eth0 : interface d'entrée (input)
   -j DROP : envoi la trame à la fonction DROP (jump DROP), donc bêne la trame

Une trame qui arrive par l'interface de notre lan "eth0" et qui va en destination d'un port 80, quelque soit l'adresse de destination, est bênée. Maintenant, pour surfer, un client doit nécessairement utiliser le serveur proxy disponible à l'adresse 192.168.0.1 et sur le port 8080.

Me contacter | ©2004-2005 Raum