109 lines
2.9 KiB
Markdown
109 lines
2.9 KiB
Markdown
**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
|
|
<http_port> 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"
|
|
|
|
<http_access> deny !WHITELIST
|
|
<http_access> allow INTERNE
|
|
<http_access> deny all
|
|
|
|
logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>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 :
|
|
|
|
~~~
|
|
<http://.*debian.org/.*>
|
|
<http://pub.evolix.net/.*>
|
|
<http://www.kernel.org/.*>
|
|
<http://pear.php.net/.*>
|
|
<http://.*akismet.com/.*>
|
|
<http://.*wordpress.org/.*>
|
|
<http://.*twitter.com/.*>
|
|
<http://feeds.feedburner.com/.*>
|
|
<http://feeds2.feedburner.com/.*>
|
|
<http://sync.openx.org/.*>
|
|
<http://oxc.openx.org/.*>
|
|
<http://code.openx.org/.*>
|
|
<http://pc.openx.com/.*>
|
|
<http://api.pc.openx.com/.*>
|
|
<http://bid.openx.net/.*>
|
|
<http://blog.openx.org/.*>
|
|
<http://forum.openx.org/.*>
|
|
<http://www.backports.org/.*>
|
|
<http://.*.facebook.com/.*>
|
|
<http://.*.fbcdn.net/.*>
|
|
<http://.*.google-analytics.com/.*>
|
|
<http://ajax.googleapis.com/.*>
|
|
~~~
|
|
|
|
La liste des URLs que nous utilisons en standard peut-être trouvée sur <http://forge.evolix.org/scm/viewvc.php/trunk/etc/whitelist.conf?root=packweb&view=log>
|
|
|
|
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
|
|
~~~
|
|
|
|
## 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 <IP locale> --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
|
|
~~~
|