Table des matières
Squid
Authentification
Anonym
Lien: http://patchlog.com/general/how-to-set-up-an-anonymous-proxy-on-debian/
On peut demandé à “squid” de filtrer des elements du “header”, notamment pour être plus anonyme, ou simplement, ne pas montré qu'on passe par un proxy.
Donc, dans squid.conf
:
header_access Allow allow all header_access Authorization allow all header_access WWW-Authenticate allow all header_access Proxy-Authorization allow all header_access Proxy-Authenticate allow all header_access Cache-Control allow all header_access Content-Encoding allow all header_access Content-Length allow all header_access Content-Type allow all header_access Date allow all header_access Expires allow all header_access Host allow all header_access If-Modified-Since allow all header_access Last-Modified allow all header_access Location allow all header_access Pragma allow all header_access Accept allow all header_access Accept-Charset allow all header_access Accept-Encoding allow all header_access Accept-Language allow all header_access Content-Language allow all header_access Mime-Version allow all header_access Retry-After allow all header_access Title allow all header_access Connection allow all header_access Proxy-Connection allow all header_access Cookie allow all header_access Set-Cookie allow all # TJ -------- header_access User-Agent allow all # ----------- header_access All deny all
D'aprés mes tests, ca filtre au moins ça :
HTTP_VIA=>1.1 pirate.thierry-jaouen.local:3128 (squid/2.7.STABLE3) HTTP_X_FORWARDED_FOR=>192.168.0.127
(En clair: ca dit que j'utilise un proxy et devoille mon ip réel)
J'ai eu besoin de laisser passer le “User-Agent” …
Configurer en proxy transparent
On a le reseau suivant:
192.168.0.0/24 : le reseau local 192.168.0.254 : la gateway vers le net 192.168.0.62 : le poste client qui doit passer par le proxy 192.168.0.50 : la gateway du client proxy 192.168.0.53 : le proxy est là
Sur le client proxy:
Faire en sorte que sa gateway soit 192.168.0.50. Exemple: route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.50
Ainsi, tout ce qui n'est pas connu du client, utilise la route vers 192.168.0.50.
Sur la (pseudo) gateway
Appliquer des regles de routages par marquage des paquets.
# echo 200 proxy >> /etc/iproute2/rt_tables
(Nommer la table numéro 200 proxy)
# ip rule add fwmark 0x41 table proxy
(Si le paquet est marqué '0x41' regarder dans la table nommé proxy)
# ip rule ls 0: from all lookup local 32765: from all fwmark 0x41 lookup proxy 32766: from all lookup main 32767: from all lookup default # ip route add default via 192.168.0.53 dev eth0 table proxy # ip route flush cache
(La table proxy attribue un routage par defaut (a priori different de celui de l'hote bien sur))
Toutes les instructions ip ci-dessus doivent être regenérer a chaque reboot (c'est a injecter dans un script if-up…). Il faut attribuer mark en fonction des numéros possiblements deja attribué pour le QoS par exemple…
IPTABLES
Ajouter le marquage des paquets dans IPTABLES:
/sbin/iptables -t mangle -A PREROUTING -i eth0 -p tcp -s 192.168.0.62 --dport www -j MARK --set-mark 0x41
Et c'est tout… Le marquage fait, le routage est fait sans plus passer dans aucune table… etrange d'ailleurs, j'ai du me tromper quelque part…)
Sur la machine hébergeant le proxy
Dans /etc/squid/squid.conf version 2.6 ou + (important)
... http_port 3128 transparent
... #http_access allow localhost #http_access allow all acl our_network src 192.168.0.62 http_access allow our_network ...
Evidement, ca pourrait être une classe d'IP: 192.168.0.0/24 par exemple
Au niveau d'IPTABLES:
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -s 192.168.0.0/24 -d ! 192.168.0.53 --dport www -j REDIRECT --to-port 3128
On redirige tout vers le port 3128, sauf ce qui est destiné au web interne…
Et voila!