Squid - proxy sous Linux
Squid est un proxy-cache sous linux.
La configuration de Squid se fait avec le fichier /etc/squid/squid.conf :
##################################################################
#Fichier de conf du serveur proxy Squid DCMAT LTN DORIGNY
##################################################################
##################################################################
#Port utilise pour se connecter au proxy
http_port 80
#http_port 10000
#Pas de cache voisin
icp_port 0
#Administrateur du proxy
cache_mgr mail@domain
#Messages d'erreurs en french!!
error_directory /squid/errors
#User et group affecte a squid
#cache_effective_user nobody
#cache_effective_group squid
#Nom de Squid
visible_hostname proxy.dcmat.terre.def
#Memoire alloue a Squid
cache_mem 100 MB
#Repertoire devant recevoir les objets 10Go
cache_dir ufs /squid/cache 10000 16 256
#Fichiers de log des requetes
cache_access_log /squid/acess.log
cache_log /squid/cache.log
cache_store_log /squid/store.log
cache_swap_log /squid/swap.log
#cache_store_log none
logfile_rotate 1
#PID du process
pid_filename /var/run/squid.pid
#Serveurs DNS
dns_nameservers adr_IP_DNS1 adr_IP_DNS2
#Gestion des time out
connect_timeout 120 seconds
read_timeout 15 minutes
request_timeout 30 seconds
client_lifetime 1 day
#Gestion de FTP
ftp_user anonymous@dcmat.terre.def
ftp_list_width 64
ftp_passive on
#Pas de refresh_pattern
#Taille max d'un objet dans le cache
maximum_object_size 2048 KB
#request_size 50 KB
#request_body_max_size 100 KB
#reference_age 1 hour
#Domaine soutenu par le proxy
append_domain domain1 domain2
# Le proxy se connectra directement au serveur si l'URL contient
# les mots dans le fichier /squid/divers/hierarchy.stoplist
hierarchy_stoplist "/squid/divers/hierarchy.stoplist"
#Emplacement du fichiers des types MIME supporte par squid
mime_table /squid/divers/mime.conf
#Niveau de debugage des logs
debug_options ALL,1
#Duree de validite des infos DNS
positive_dns_ttl 2 hours
negative_dns_ttl 5 minutes
#Nbr de requete DNS
#dns_children 15
#Chainage de proxy ou host est l'adresse IP du proxy parent et domain le nom du domaine local
cache_peer host parent 8080 0 default no-query
cache_peer_domain host !domain
acl direct_domain dstdomain domain1 domain2
#On precise a Squid de ne pas travailler seulement avec le proxy parent
prefer_direct off
###############################################################
#ACL : Desscriptions des regles ACL
acl all src 0.0.0.0/0
acl localhost src 127.0.0.1/32
acl dst_lan dst 160.133.0.0/16
acl src_lan src 160.133.0.0/16
#acl host_allow all
#acl host_deny all
#Site interdit ou autorise d'acces au proxy
#acl site_deny dst "/squid/divers/hosts.deny"
#acl site_allow dst "/squid/divers/hosts.allow"
#mots dans l'url dont on interdit l'acces
#acl url_interdites url_regex /squid/divers/words.deny
#Fichiers dont l'extension est interdite au telechargement
acl badfile_ext urlpath_regex -i "/squid/divers/badfile.ext"
#Heure d'ouverture et de fermeture du proxy
acl close_hour time 0:00-24:00
acl open_hour time 6:00-23:30
#Hosts autorises utiliser le proxy en dehors des heures d'ouverture
#acl hosts_allow_hour src "/squid/divers/hostshour.allow"
#Ports standards autorises
acl Safe_ports port 80 8080 20 21 443 563 1024-65535
#Ports autorises pour la methode POST et GET
acl POST_GET_ports port 80 8080 443 563 20 21 1024-65535
#Class de methode POST et GET
acl POST_GET_class method POST GET
#Purge du cache
acl PURGE method purge
#Console de management pour le proxy
cachemgr_passwd secret all
acl manager proto cache_object
acl localhost src 127.0.0.1
##################################################################
#Application des ACL
#Remarque les acl sont traites dans l'ordre comme un firewall
#En cas de besoin...
#http_access deny all
#http_access allow all
http_access allow manager localhost
http_access deny manager
http_access deny POST_GET_class !POST_GET_ports
http_access deny !Safe_ports
#http_access deny close_hour !open_hour !hosts_allow_hour
http_access deny close_hour !open_hour
http_access deny badfile_ext
#http_access deny url_interdites
#http_access deny site_deny !site_allow
#http_access allow hosts_allow
http_access allow localhost
http_access allow purge localhost
http_access deny purge
http_access allow src_lan dst_lan
http_access allow src_lan !dst_lan
http_access allow !src_lan dst_lan
#http_access deny !src_lan !dst_lan
http_access deny all
always_direct allow dst_lan
always_direct allow direct_domain
never_direct allow all
icp_access deny all
|
Les fonctionnalités de Squid mises en œuvre par squid.conf :
- On peut interdire des requêtes sur certains sites et il est possible également de refuser les adresses contenant certains mots interdits.
- On peut limiter la taille des téléchargements ou des pages téléchargées.
- Squid est un proxy-cache : il mémorise les pages téléchargées ce qui accélère le téléchargement des pages les plus demandées. La durée de validité de ces pages est paramétrable avec des Timeout.
- Il est possible de fixer des horaires d’accès pour les utilisateurs.
- Les connexions sont gérées par des ACL qui indiquent la politique de sécurité en fonction de l’origine des requêtes.
Console d’administration :
Une console d’administration est fournie par Squid, via une interface Web (utilise un service web installé sur le proxy) par l’adresse http://locallhost:8080/cgi-bin/cachemgr.cgi . Cette console doit être limitée à une utilisation locale (possible avec les ACL) afin que personne ne prenne le contrôle de Squid à distance. La console fournit des informations et des statistiques sur l’utilisation du proxy-cache.
Remarque :
- Squid peut être administré par le logiciel Webmin.
- Squid nécessite l’utilisation d’un DNS.
|