{{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