|
Il y a actuellement 7 visiteurs connectés sur le site !
Proxy squid
Qu'est ce que c'est? :
Un serveur mandataire ou serveur proxy est un serveur qui a pour fonction de relayer différentes requêtes et d'entretenir un cache des réponses. Inventé par le Centre européen de recherche nucléaire en 1994, à l'origine pour relier à Internet des réseaux locaux n'utilisant pas le protocole TCP/IP, il a été depuis doté de nouvelles fonctions concernant :* le cache;* l'enregistrement (logging) des requêtes;* la sécurité du réseau local;* le filtrage et l'anonymat.
Avant la mise en place d'un proxy, toutes les personnes qui allaient sur internet, récupéraient par l'intermédiaire de leur navigateur les objets (html, images, ...) qu'ils avaient consulté, mais tous ces objets qui étaient télécharges n'étaient pas accessibles pour les autres navigateurs, ce qui impliquait que les autres utilisateurs devaient eux aussi récupérer leurs propres objets.
Après la mise en place du proxy, les personnes passaient par notre nouveau serveur pour aller 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écharge.
Ce qui réduit la consommation de bande sur notre ligne Adsl. Bien sur le serveur proxy vérifie, avant de donner les objets qu'il 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 ete enregistré. :
Installation :
Téléchargez la dernière version de Squid.
urpmi squid (pour une distribution mandriva
apt-get install squid (pour une debian)
Voici ce que vous obtenez
/usr/lib/squid : le repertoire de base de squid
/etc/squid : le repertoire de configuration de squid
/usr/sbin/squid : contenant les binaires .
/var/log/squid contient les logs et les fichiers caches
Pour des logs/caches importants ,il sera préférable d'allouer une partition séparée
En général les options de configuration 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.
Repertoire 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.
Ne pas oublier de changer les droits sur le repertoire de cache :
chown squid /var/log/squid
chgrp squid /usr/local/squid
Trés important :
Il faut maintenant initialiser le répertoire de cache :
/usr/sbin/squid z
Autres options du squid.conf
http_port 3128 (c'est le port sur lequel travaille le cache, 3128 par défaut, certains déplacent ce port en 8080)
icp_port 3128 (c'est le port sur lequel le cache peut être interrogé par un cache fils ou voisin, cas d'une hiérarchie)
cache_mgr deny@monaco.net (c'est le nom de l'administrateur du cache)
cache_effective_user squid squid (sert à affecter un utilisateur et un groupe pour squid)
visible_hostname cache.domaine.fr (c'est le nom que renvoi squid lorsqu'il est interrogé de l'extérieur)
cache_mem 20 MB (c'est la mémoire que l'on alloue à Squid pour tourner , valeur par défaut 8 MB).
cache_dir /cache1 3200 16 256 (pour indiquer le répertoire devant accueillir les objets, la taille disque, le nombre de répertoires de premier et de second niveau pour le stockage)
cache_dir /cache2 3200 16 256 (idem pour la deuxième partition allouée au cache)
cache_access_log /var/log/squid/access.log (pour indiquer à quel endroit stocker le fichier log des requêtes)
cache_log /var/log/squid/cache.log (pour indiquer à quel endroit stocker le fichier log de squid)
cache_store_log none (pour ne pas enregistrer dans un fichier de log les ecritures et effacements d'objets)
|
Test et configuration des navigateurs :
Si vous avez suivi mes instructions à la lettre votre configuration doit être finie.
Saisir en root /usr/sbin/squid -z (consulter ensuite le fichier /var/log/squid/cache.log pour vérifier que tout c'est bien passé)
Pour vérifier que squid charge bien ses pages depuis le cache , ouvrez votre navigateur configuré comme ci-dessous:
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.
(Le port par défaut est 3128)
Ensuite vérifier dans le fichier /var/log/squid/access.log les requêtes
Vous obtiendrez un listing de ce type :
1145704653.059 215 192.168.0.1 TCP_REFRESH_HIT/304 323 GET http://www.linux-pour-lesnuls.com/icone/codehacks.gif - DIRECT/82.216.95.106 -
1145704653.072 172 192.168.0.1 TCP_REFRESH_HIT/304 323 GET http://www.linux-pour-lesnuls.com/fondb1.gif - DIRECT/82.216.95.106 -
1145704653.093 188 192.168.0.1 TCP_REFRESH_HIT/304 324 GET http://www.linux-pour-lesnuls.com/fondb2.gif - DIRECT/82.216.95.106 -
1145704653.464 415 192.168.0.1 TCP_MISS/200 1562 GET http://ss.webring.com/navbar? - DIRECT/69.90.135.89 application/x-javascript
|
(le mot HIT correspond à un objet trouvé dans le cache, le mot MISS indique que Squid ne l'a pas et va donc le chercher directement sur Internet ou via son Parent selon les cas...)
Pour lancer automatique squid au démarrage :
Rendez-vous dans mcc / services et activez squid au démarrage
Autres options :
Il faut ensuite définir les règles d'accès au cache (dit access-list ou acl)
http_access allow all (pour autoriser tout le monde à utiliser le cache)
acl CLIENTS src 172.16.0.0/255.255.0.0 192.168.1.10/255.255.255.255 (on définit les réseaux ou les machines autorisées)
http_access allow CLIENTS (on autorise les accès http aux machines définit dans l'acl CLIENTS)
http_access deny all (on interdit toutes les autres)
Si votre cache est amené à être consulté par d'autres caches dans un hiérarchie, l'interrogation se fait via le protocole ICP.
icp_access allow CLIENTS (on autorise les accès icp aux machines définit dans l'acl CLIENTS)
icp_access deny all (on interdit toutes les autres)
Sources de l'article
|