**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.** # Howto Squid Pour sécuriser le serveur web, nous installons un proxy HTTP en sortie. Cela permet d'interdire ou de garder des traces des requêtes faites vers l'extérieur. ## Installation ~~~ # aptitude install squid3 ~~~ ## Configuration La configuration se passe dans le fichier _squid.conf_ qui contiendra : ~~~ # ports 8888 transparent icp_port 0 # ACL #acl all src 0.0.0.0/0.0.0.0 acl localhost src 127.0.0.1/32 acl INTERNE src ADRESSE_IP/32 127.0.0.0/8 acl Safe_ports port 80 # http acl SSL_ports port 443 563 acl WHITELIST url_regex "/etc/squid3/whitelist.conf" deny !WHITELIST allow INTERNE deny all logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %h" "%{User-Agent}>h" %Ss:%Sh access_log /var/log/squid3/access.log combined ~~~ Le fichier _whitelist.conf_ contiendra les URLs autorisées en sortie : ~~~ ~~~ La liste des URLs que nous utilisons en standard peut-être trouvée sur Il reste évidemment à rediriger les requêtes HTTP en sortie vers Squid avec IPTables : ~~~ /sbin/iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner proxy -j ACCEPT /sbin/iptables -t nat -A OUTPUT -p tcp --dport 80 -d ADRESSE_IP -j ACCEPT /sbin/iptables -t nat -A OUTPUT -p tcp --dport 80 -d 127.0.0.1 -j ACCEPT /sbin/iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-port 8888 ~~~ ### Monitoring Afin de détecter des oublis ou des éventuelles attaques, il sera intéressant d'ajouter la configuration suivante au logiciel _log2mail_ : ~~~ file = /var/log/squid3/access.log pattern = "TCP_DENIED/403" mailto = ADRESSE-MAIL-ALERTE template = /etc/log2mail/template.squid ~~~ template.squid ~~~ From: %f To: %t Subject: Squid Alert - URL non autorisee Dernieres URLs non autorisees We have matched your pattern "%m" in "%F" %n times: %l Eventuellement autoriser l'access dans la whitelist ou verifier dangerosite de la requete. Yours, log2mail. ~~~ On n'oubliera pas d'ajouter l'utilisateur _log2mail_ dans le groupe _proxy_ pour qu'il puisse lire ce fichier (sinon _log2mail_ plante !!) : ~~~ # adduser log2mail proxy Adding user `log2mail' to group `proxy' ... Adding user log2mail to group proxy Done. ~~~ ## Tips ### Squid est lent / indispo Cas possible où squid tente de sortir en IPv6 alors qu'il n'y a qu'un lien local ! Astuce : rajouter `tcp_outgoing_address $IP` ### Astuce "pêche à la ligne" Si vous voyez passer des requêtes vers des sites suspects et que vous voulez identifier quel utilisateur les provoque, voici l'astuce "pêche à la ligne" : ~~~ # iptables -I OUTPUT -p tcp --syn -s --dport 8888 -j LOG --log-uid ~~~ ### Desactiver le cache Dans certains cas, on peut vouloir désactiver le cache de façon globale : ~~~ cache deny all ~~~ ### Problème avec Expect 100-continue En cas d'erreur 417 sur des Expect 100-continue, ajouter la directive : ~~~ ignore_expect_100 on ~~~