{{tag>netadmin sysadmin web proxy cache squid squid3}}
====== Installation du proxy squid3 ======
$ sudo apt-get install squid
===== Configuration de 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
===== Contrôle du service =====
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
===== Rotation des logs =====
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
===== Rendre le proxy transparent =====
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.
==== Configurer squid ====
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 [[netadmin:linux:activer-routage]].
==== Règles iptables ====
Dans les règles présentées ci-dessous:
* **lan** est le nom de l'interface écoutant sur le LAN
* **wan** est le nom de l'interface reliée à Internet
* **192.168.0.254** est l'adresse sur le LAN du serveur
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
===== Références =====
* https://wiki.squid-cache.org/SquidFaq/SquidLogs#Retrieving_.22lost.22_files_from_the_cache
* https://sebw.info/index.php?article89/squid-installation-proxy-cache-et-filtrage-via-squidguard