Squid + Privoxy
Bonjour à tous,
pour mon premier post, je vais partager mon expérience pour l’installation de Squid+Privoxy
L’architecture est la suivante:
Internet -> WRT54GL (Tomato) -> SheevaPlug (Debian SID)
Les PC se connecte en Wifi et/ou Ethernet du WRT54GL, le traffic HTTP(S) sera routé sur le squid+privoxy du sheevaplug qui sera le seul à pouvoir accéder au NET.
Les étapes sont donc les suivantes:
- Installation des paquets sur le sheevaplug
- Configuration de squid
- Écriture des iptables pour router le traffic vers le sheevaplug
Par la suite, on nommera proxy le sheevaplug et rt le WRT54GL.
Installation des paquets:
Sur le sheevaplug:
sudo apt-get install squid3 privoxy
Configuration de squid:
On ajoute dans /etc/squid3/squid.conf ceci:
Pour rediriger le traffic vers privoxy:
cache_peer localhost parent 8118 0 default no-query no-digest no-netdb-exchange
Puis pour obliger squid à toujours utiliser le proxy parent (ie: privoxy) :
never_direct allow all
On peut ensuite enlever les entêtes que l’on n’aime pas:
request_header_access From deny all request_header_access Referer deny all request_header_access Server deny all request_header_access WWW-Authenticate deny all request_header_access Link deny all reply_header_access From deny all reply_header_access Referer deny all reply_header_access Server deny all reply_header_access WWW-Authenticate deny all reply_header_access Link deny all
On redémarre squid:
/etc/init.d/squid3 restart
Tout d’abord on teste:
# export http_proxy=http://localhost:3128 # wget http://www.google.fr -O /dev/null -S -qHTTP/1.0 200 OK Date: Wed, 07 Apr 2010 12:41:29 GMT Expires: -1 Cache-Control: private, max-age=0 Content-Type: text/html; charset=ISO-8859-1 Set-Cookie: PREF=ID=eb8e7a67f615fc4d:TM=1270644089:LM=1270644089:S=Em3Dx-dtiHKSPE-l; expires=Fri, 06-Apr-2012 12:41:29 GMT; path=/; domain=.google.fr Set-Cookie: NID=33=Q-Vv24K02Vcwv3LpsOpVyt0xJ10YlmjRPL-Z_985dHCK2JxUk2j0ltDDKNlra7C41OIuz9rONmewy1qYj4A4yG839N8JolUi2PlfiRpuKyUnUlKRH3JKmV3iMBasmvYM; expires=Thu, 07-Oct-2010 12:41:29 GMT; path=/; domain=.google.fr; HttpOnly Server: gws X-XSS-Protection: 0 X-Cache: MISS from proxy X-Cache-Lookup: MISS from proxy:3128 Via: 1.0 proxy:3128 (squid/3.0.STABLE19) Connection: close
On voit bien la réponse du proxy.
Routage du traffic de notre réseau local sur le port 3128 de squid
Tous d’abord nous allons informer squid que l’on va l’utiliser en tant que proxy transparent, dans /etc/squid3/squid.conf ajouter le mot clé transparent comme ceci:
http_port 3128 transparent
Maintenant sur le routeur, voici les iptables à ajouter:
iptables -t nat -A PREROUTING -i vlan0 -s ! 192.168.1.2 -p tcp --dport 80 -j DNAT --to 192.168.1.2:3128 iptables -t nat -A POSTROUTING -o vlan0 -s 192.168.1.0/24 -d 192.168.1.2 -j SNAT --to 192.168.1.1 iptables -A FORWARD -s 192.168.1.0/24 -d 192.168.1.2 -i vlan0 -o vlan0 -p tcp --dport 3128 -j ACCEPT
vlan0 est le bridge réseau sur lequel toutes les machines du LAN sont connectées ainsi que le proxy.
La première ligne « NATte » tout le traffic du port 80 du réseau local excepté le proxy vers le port 3128 du proxy
La seconde change l’adresse source (SNAT) de tout le traffic qui vient du LAN avec celle du routeur pour que le proxy renvoie les paquets vers le routeur (dans mon cas ce n’est pas forcément utile, vu que le proxy est sur le même réseau que les autres machines du LAN).
La dernière autorise les paquets du LAN à aller vers le proxy pour le port 3128
novembre 26th, 2010 at 9 h 32 min
salut,
j’ai une petite question concernant iptables et squid. Tout le trafic est redirigé vers le port de squid.
Mais si l’on regarde les logs (access.log) de squid, on doit voir apparaitre l’ip du routeur et non les ips clients du lan.
Peut-on y remedier par une règle iptables pour voir les ips clientes et non celle du routeur.
Merci d’avance.