Mise en place d'un serveur proxy Squid

Publié le par Izdaouir

Qu'es-ce c'est ?

Le principe du proxy Squid est assez simple, prenons par exemple notre réseau X.
Le réseau X est composé d’une dizaine de postes équipés de cartes réseaux ethernet à 100Mb/s.
Ce réseau est relié via un routeur à internet via une ligne Adsl.
Nous lui avons affecté une plage d’adresses Ip non routable (192.168.1.x).
Le routeur ce nome gw.x.com.
Avant la mise en place de notre proxy, toutes les personnes qui allais sur internet, récupérais par l’intermédiaire de leurs navigateurs les objets (html, images, ...) qu’ils avaient consultés, mais tous ces objets qui était télécharger n’était pas accessible pour les autres navigateurs, ce qui impliquait que les autres utilisateurs devait eux aussi récupérer leurs propres objets.
Après la mise en place de notre proxy, les personnes passaient par notre nouveau serveur pour allé chercher des objets (pages html , images , etc…).
A chaque demande d’un utilisateur le proxy ‘enregistre’ les objets sur son disque dur. L’utilisateur suivant qui demande les même objets (ex : meme url) sont déjà enregistrés sur le proxy donc non retélécharger.
Ce qui réduit la consommation de bande sur notre ligne Adsl. Bien sur le serveur proxy vérifie, avant de donner les objets qui possède sur son disque, s’il n’y a pas de version plus récente de l’objet demandé sur Internet. S’il y a une version plus récente il va la telecharger sinon il donne à l’utilisateur l’objet qui avait enregistré.

Installation
Téléchargez la dernière version de Squid.
http://ftp.de.debian.org/debian/pool/main/s/squid3/squid3_3.1.0.15.orig.tar.gz
Décompressez-là :
tar –zxf squid3_3.1.0.15.orig.tar.gz
Compilez là :
./configure –enable-err-language=French
make all
make install
Un répertoire est crée dans /usr/local/squid il contient un répertoire bin qui contient à son tour les répertoires cache, etc, logs
Configuration

Les fichiers de configuration sont dans le répertoire /usr/local/squid/etc.

En général les options par défaut sont correctes pour une utilisation dite ‘classique‘

Squid doit initialisé les ports qui sont < 1024 par un process en root. Pour des raisons de sécurité. Il faut créer un utilisateur squid et un groupe squid pour permettre à Squid de se mettre en utilisateur Squid une fois les ports initialisés.
Une fois l’utilisateur et le groupe crée, ajouter ces lignes au squid.conf :
cache_effective_user squid cache_effective_group squid

Le Port d ‘écoute : Par défaut Squid écoute sur le port 3128.
De nombreux administrateurs réseaux préfèrent le passer en 81 ou en 8080.
Ca n’as aucune importance sauf pour le retenir.

Répertoire de cache

Toujours dans le fichier squid.conf, il y a une directive qui s’appelle cache_dir qui comme son nom l’indique est le répertoire pour cacher les objets.

Vous devez avoir quelques chose comme ca : cache_dir ufs /usr/local/squid/cache 1024 16 256 dans votre fichier.
Le premier chiffre indique la taille du cache il est exprimer en Mo donc ici il est d’1 Go.

Le répertoire étant déjà crée (lors de la décompression du tarball, si ce n'est pas le cas , alors fait le) il faut juste qu’on change ses droits :
chown squid /usr/local/squid/cache
chgrp squid /usr/local/squid/cache

Il faut maintenant initialiserle répertoire de cache :
/usr/local/squid/bin/RunCache –z
Autres options du squid.conf
- cache_mgr admin@x.com à C’est l’e-mail de l’admin. du cache
- ftp_user admin@x.Com à C’est l’e-mail qui sera donné en cas de connexion anonymous à un serveur FTP
- minimum_objet_size 0 KB à Taille minimum de l’objet à cacher.

Tests et configuration des navigateurs

Si vous avez suivi mes instructions à la lettre votre configuration doit être finie.

Tapez maintenant pour lancer squid:
/usr/local/squid/bin/RunCache –N –d 2

-N pour l’interdire de passer en arrière plan
-d pour spécifier le niveau de détails ici 2

Nous allons maintenant configurer notre navigateur pour pouvoir utiliser le cache de manière quotidienne.

Dans Netscape : ‘Edit/préférence’ , ‘Advanced’, ‘Proxy’ et la vous remplissez les options qu’il vous demande.

Pour lancer automatique squid au démarrage :
Il suffit de rajouter dans le fichier /etc/rc.d/rc.local :
/usr/local/squid/bin/RunCache -D

-D pour démons

 
Autres options

D’autres options sont disponibles sous Squid mais elles ne sont pas expliquées dans ce docs.


Voici une petite liste des options de Squid pour vous donnez une idée :
- ACL (Access Classes List) permet de sécuriserl’accès à votre proxy.
- ACO (Access Classes Operators) permet de filtrer des urls (ex : interdire le téléchargement des .iso)
- Anomyze qui permet de masquer l’adresse IP ou le type de browser utilisé , …
- Des options qui permettent de mettre plusieurs cache (pas forcement des caches squid) en cascade (par ex : votre cache et celui de votre FAI)
- Des statistiques sur votre cache

 

Protocoles gérés

Squid gère les protocoles suivants : HTTP FTP SSL WAIS
Squid ne gère pas les protocoles streamé ex : RTSP

Conclusion

Squid possède de nombreses fonctions.
La configuration de celui-ci est très facile. Pour ceux qui ne s’en sorte pas, Webmin (http://www.webmin.com/webmin) est un GUI qui permet de configurer Squid sans manips dans les fichiers. Personnellement je trouve ca moins bien, que de faire une configuration dite ‘à la main’ car ca permet de mieux comprendre.
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article