$ sudo apt-get install squid
Éditer le fichier /etc/squid3/squid.conf
On définit ci-dessous un réseau désigné lan auquel on donnera le droit d’accès.
acl lan src 192.168.0.0/24
Avant la directive d'interdiction globale, autoriser le réseau lan précédemment déclaré
http_access allow lan http_access deny all
Afficher la version du programme:
$ squid3 -v
Le démarrage/arrêt/redémarrage du service squid ce fait via la commande service:
$ sudo service squid3 restart
Pour prendre en compte les modifications du fichier de configuration sans arrêter le service:
$ sudo squid3 -k reconfigure
Le fichier de log peut grossir rapidement la commande ci dessous permet de déclancher la rotation des fichiers logs:
root# squid3 -k rotate
Utiliser la commande dans un cron pour la lancer périodiquement, Dans cet exemple au début de chaque journée:
0 0 * * * /usr/sbin/squid3 -k rotate
Le mode transparent permet de filtrer les postes clients sans configuration spécifique coté client. Il a cependant ces limites notamment avec https. Le filtrage transparent ne fonctionnera pas pour tous les sites en https qui considéreront une attaque “man in the middle”. Pour que cela fonctionne, des règles de NAT devront autoriser systématiquement le flux https et donc rendre le filtrage inopérant.
Activer le mode transparent en modifiant le fichier de configuration de squid3:
http_port 3128 transparent
Modifier la configuration du système pour autoriser le routage de paquets. La procédure est décrite dans le wiki activer-routage.
Dans les règles présentées ci-dessous:
Règles de bypass du flux https
iptables -t filter -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -t filter -A FORWARD -i lan -p tcp --dport 443 -j ACCEPT iptables -t nat -A POSTROUTING -o wan -j SNAT --to-source 192.168.0.254
Règle de NAT rendant squid transparent:
iptables -t nat -A PREROUTING -i lan -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.0.254:3128 iptables -t nat -A PREROUTING -i wan -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128