
Introduction :
Squid est un logiciel libre de serveur proxy distribué sous licence GNU GPL.
Squid permet d’atteindre 2 objectifs importants dans de nombreuses entreprises :
– Diminuer l’utilisation de la bande passante Internet
– Limiter l’accès au Web pour les utilisateurs autorisés
Les utilisateurs configurent leur navigateur Web pour utiliser le serveur proxy Squid au lieu d’accéder directement à Internet.
Installation sous Debian :
En console root
Téléchargement et installation :
apt-get install squid
Édition du fichier de configuration :
gksu gedit /etc/squid/squid.conf
Utilisation de Squid :
/etc/init.d/squid {start|stop|reload|force-reload|restart|status}
Logs de squid :
tail -f /var/log/squid/access.log
Configuration générale de Squid :
Fichier /etc/squid/squid.conf
# Nom du proxy, il est conseillé de mettre un nom différent de celui de l’hôte
visible_hostname serveur_proxy
# Port en écoute sur l’interface interne, ce port peut être modifié
http_port 10.0.0.1:3128
# Le cache (ici 100 Mo) – Ex pour 300 Mo : 300 16 256
# cache_dir ufs /var/spool/squid 100 16 256
Liste des contrôles d’accès ou Access Control Lists (ACL) :
Fichier /etc/squid/squid.conf
# ACL SSL_ports (ports SSL autorisés)
acl SSL_ports port 443 563 10000
# ACL Safe_Ports (ports autorisés)
acl Safe_ports port 80 # http
acl Safe_ports port 20 # ftp
acl Safe_ports port 21 # ftp-data
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # vais
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 443 # https
acl Safe_ports port 563 # snews
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901
acl Safe_ports port 10000 # webmin
acl Safe_ports port 1025-65535
# ACL réseau de base
acl all src 0.0.0.0/0.0.0.0 # tout le monde
acl localhost src 127.0.0.1/255.255.255.255 # localhost
# ACL persos
acl monlan src 10.0.0.0/24 # Un LAN entier
acl usera src 10.0.0.5/255.255.255.255 # Un utilisateur a
acl userb src 10.0.0.6/255.255.255.255 # Un utilisateur b
acl userc src 10.0.0.7/255.255.255.255 # Un utilisateur c
acl business_hours time M T W H F 9:00-17:00 # Une plage horaire
# Accès interdits sur les ports non autorisés
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# Accès autorisé à mes ACL
http_access allow localhost
http_access allow monlan business_hours
http_access allow usera
http_access allow userb
http_access allow userc
# Accès interdit à tous les autres
http_access deny all
Accès restreints a des sites web spécifiques :
Squid est également capable de lire des fichiers contenant des listes de sites Web et/ou des domaines pour une utilisation dans les ACL.
Dans cet exemple, nous créons des listes dans des fichiers nommés /usr/local/etc/allowed-sites.squid et /usr/local/etc/restricted-sites.squid
Fichier /usr/local/etc/allowed-sites.squid
www.debian.org
boutry.fr
Fichier /usr/local/etc/restricted-sites.squid
www.porn.com
facebook.com
Fichier /etc/squid/squid.conf
# ACL avec les fichiers de sites
acl GoodSites dstdomain "/usr/local/etc/allowed-sites.squid"
acl BadSites dstdomain "/usr/local/etc/restricted-sites.squid"
# Accès des ACL sites
http_access deny BadSites
http_access allow monlan business_hours GoodSites
Squid possède aussi plusieurs autres fonctions :
– contrôle d’accès au proxy par login et mot de passe,
– filtres antivirus,
– antipopups, …