next up previous contents
suivant: Configurer un client pour monter: Configurer un proxy HTTP précédent: Un proxy pour filtrer   Table des matières


Configurer Squid

/etc/squid/squid.conf (RedHat) ou /etc/squid.conf (SuSE).

#
# Nom des utilisateurs et groupes sous lesquels tourne Squid. Si ils
# n'existent pas, les creer :
#     groupadd -g 999 squid
#     useradd -g squid -d /usr/local/squid squid
#

cache_effective_user squid
cache_effective_group squid

#
# Sur quel port Squid ecoute les requettes.
#

http_port 3128

#
# Memoire cache utilisee (8 si il y a moins de 512 Mo de RAM, 128 sinon).
#

cache_mem  8 MB

#
# Taille maximale des fichiers charges (ici 40 Mo).
#

maximum_object_size 40960 KB

#
# Repertoire ou stocker les fichiers, taille maximale en Mo a utiliser dans
# ce repertoire, et nombre de repertoires et de sous repertoires a utiliser
# dans le repertoires de cache.
#
# Si le repertoire n'existe pas, il faut le creer :
#     mkdir -m 700 /usr/local/squid/cache
#     chown squid /usr/local/squid/cache
#     chgrp squid /usr/local/squid/cache
# et lancer la creation des sous repertoires :
#     squid -z
#

cache_dir ufs /var/squid/cache 100 16 256

#
# Journal des requettes emises par le client.
#

cache_access_log /var/squid/logs/access.log

#
# Informations sur le cache. L'option ``debug_options'' permet d'avoir
# plus de renseignements.
#

cache_log /var/squid/logs/cache.log

#
# Nombre maximum de versions archivees. Rajouter dans la crontab :
#     0 2 * * *   squid   /usr/sbin/squid -k rotate
# pour archiver tous les matins a 2H00 les logs.
#

logfile_rotate 30

#
# Delais au dela desquels Squid considere qu'une transaction a echoue
# (etablissement des connexions, envoi des requetes et reception des
# resultats).
#

connect_timeout 30 seconds
request_timeout 30 seconds
read_timeout 2 minutes

#
# Adresse mel du responsable du cache.
#

cache_mgr webmaster@localhost

#
# Adresse valide lors du telechargement FTP sous compte ``anonymous''.
#

ftp_user Squid@localhost 

#
# Nom de la machine a afficher.
#

visible_hostname tarsier.chez.moi

#
# Tester si la resolution DNS de certains sites fonctionne.
#

dns_testnames netscape.com internic.net nlanr.net microsoft.com

#
# Definition des limitations d'acces au proxy.
#

#
# Gestionnaire du cache.
#

acl manager proto cache_object

#
# Machine locale.
#

acl src_localhost src 127.0.0.1/255.255.255.255

#
# Les machines du reseau 192.168.1.x (notre reseau local).
#

acl src_reseau_local src 192.168.1.0/255.255.255.0

#
# Toutes les machines.
#

acl all src 0.0.0.0/0.0.0.0

#
# L'acces HTTP est autorise pour toutes les machines du reseau local.
#

http_acces allow manager localhost
http_acces deny manager
http_acces allow src_localhost
http_acces allow src_reseau_local
icp_access deny all

#
# Masquer la partie hote des adresses IP envoyees.
#

client_netmask 255.255.255.0

#
# Masquer l'adresse mel, la description du client et la ressource URL
# a partir de laquelle l'utilisateur a selectionne la ressource interrogee.
#

anonymize_headers deny From Referer Server User-Agent

#
# Identification du programme client (certains serveurs la reclament,
# mais nous on veut la cacher...).
#

fake_user_agent Nutscrape/1.0 (CP/M; 8-bit)

#
# Evite que les parametres des requetes adressees a un moteur de recherche
# ne soient archivés.
#

strip_query_terms on

#
# Interdire le chargement de fichiers *.mp3 (on est pas la pour rigoler).
#

acl url_mp3 url_regex -i \.mp3$
http_access deny url_mp3

#
# Les objets importes font 1 Mo maximum.
#

reply_body_max_size 1024 KB

#
# Filtrer tout le FTP et le domaine sex
#

acl proto_ftp proto ftp
acl dom_sex dstdom_regex -i sex
http_access deny proto_ftp
http_access deny dom_sex

#
# Raccordement au cache du FAI.
#

cache_peer proxy.fai.fr parent 8080 0 default no-query
prefer_direct off

#
# Les requettes HTTP et CGI vers l'hote local et le reseau local
# ne passent pas par le proxy.
#

acl dst_localhost dst 127.0.0.1/255.255.255.255
acl dst_reseau_local dst 192.168.0.0/255.255.255.0
always_direct allow dst_localhost
always_direct allow dst_reseau_local
hierarchy_stoplist cgi-bin ?

Initialiser les répertoires de stockages avec la commande squid -z. Pour tester la configuration :

# squid -N -D -d 2
2002/04/23 10:19:00| Starting Squid Cache version 2.3.STABLE3 for i686-pc-linux-gnu...
2002/04/23 10:19:00| Process ID 2259
2002/04/23 10:19:00| With 1024 file descriptors available
2002/04/23 10:19:00| DNS Socket created on FD 4
2002/04/23 10:19:00| Adding nameserver 192.168.1.4 from /etc/resolv.conf
2002/04/23 10:19:00| Adding nameserver 212.27.32.5 from /etc/resolv.conf
2002/04/23 10:19:00| Adding nameserver 212.27.32.6 from /etc/resolv.conf
2002/04/23 10:19:00| Unlinkd pipe opened on FD 9
2002/04/23 10:19:00| Swap maxSize 102400 KB, estimated 17066 objects
2002/04/23 10:19:00| Target number of buckets: 341
2002/04/23 10:19:00| Using 8192 Store buckets
2002/04/23 10:19:00| Max Mem  size: 8192 KB
2002/04/23 10:19:00| Max Swap size: 102400 KB
2002/04/23 10:19:00| Rebuilding storage in /var/squid/cache (CLEAN)
2002/04/23 10:19:00| Set Current Directory to /var/squid/cache
2002/04/23 10:19:00| Loaded Icons.
2002/04/23 10:19:00| Accepting HTTP connections at 0.0.0.0, port 3128, FD 11.
2002/04/23 10:19:00| Accepting ICP messages at 0.0.0.0, port 3130, FD 12.
2002/04/23 10:19:00| Accepting HTCP messages on port 0, FD 13.
2002/04/23 10:19:00| WCCP Disabled.
2002/04/23 10:19:00| Ready to serve requests.
2002/04/23 10:19:00| Done reading /var/squid/cache swaplog (20 entries)
2002/04/23 10:19:00| Finished rebuilding storage from disk.
2002/04/23 10:19:00|        20 Entries scanned
2002/04/23 10:19:00|         0 Invalid entries.
2002/04/23 10:19:00|         0 With invalid flags.
2002/04/23 10:19:00|        20 Objects loaded.
2002/04/23 10:19:00|         0 Objects expired.
2002/04/23 10:19:00|         0 Objects cancelled.
2002/04/23 10:19:00|         0 Duplicate URLs purged.
2002/04/23 10:19:00|         0 Swapfile clashes avoided.
2002/04/23 10:19:00|   Took 0.3 seconds (  61.1 objects/sec).
2002/04/23 10:19:00| Beginning Validation Procedure
2002/04/23 10:19:00|   Completed Validation Procedure
2002/04/23 10:19:00|   Validated 20 Entries
2002/04/23 10:19:00|   store_swap_size = 70k
2002/04/23 10:19:01| storeLateRelease: released 0 objects

L'option -N évite le passage en arrière plan (afin de voir les messages s'afficher), -D évite un test du service DNS et -d fixe le niveau de détail des comptes-rendus.

client http://www.squid-cache.org
client -h 192.168.0.1 -p 8080 http://www.squid-cache.org

Pour trouver le proxy du FAI :


Pour utiliser deux proxy proxy1 d'adresse IP 192.168.1.1 et proxy2 d'adresse IP 192.168.1.2 pour un même réseau :

  1. Configurer le DNS pour que l'alias proxy pointe sur les deux machines :

    proxy A 192.168.1.1
    proxy A 192.168.1.2
    

  2. Sur proxy1.chez.moi, mettre dans le fichier de configuration de Squid :

    cache_peer proxy2.chez.moi sibling 3128 3130 proxy-only
    acl src_proxy2 src 192.168.1.2/255.255.255.255
    icp_access allow src_proxy2
    

    proxy-only bloque le stockage en cache local d'un résultat récupéré depuis un cache frère.

  3. Sur proxy2.chez.moi, mettre dans le fichier de configuration de Squid :

    cache_peer proxy1.chez.moi sibling 3128 3130 proxy-only
    acl src_proxy1 src 192.168.1.1/255.255.255.255
    icp_access allow src_proxy1
    

Enfin, relancer squid.

Un programme offre via un CGI une interface permettant de gérer le cache de Squid. Pour cela, copier cachemgr.cgi dans le répertoire contenant les cgi, puis lancer http://localhost/cgi-bin/cachemgr.cgi.


next up previous contents
suivant: Configurer un client pour monter: Configurer un proxy HTTP précédent: Un proxy pour filtrer   Table des matières
2004-07-17