Home | Les couches OSI | Avaya P33X | Cisco 2960 | Zone Linux | Espace membre

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.

© 2007 adm4net.com