/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 :
proxy A 192.168.1.1 proxy A 192.168.1.2
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.
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.