Pb iptables et squid3

Bonjour,

je débute en débian et dur dur.

je veux faire un squid3 transparent sur une machine avec 1 carte réseau dans un lan en 10.0.0.0.

j’installe squid, teste 10 scripts de squid.conf, mon poulpe fonctionne quand je configure le navigateur sur 3128 mais il n’est pas transparent.

dans acces.log je n’arrive pas a capter les requetes 80 des machines extérieures
meme en mettant:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
dans mon /etc/init.d/firewall

Le principe a l’air bon, y a un truc que je fais mal?

Si ta machine Squid n’a qu’une carte réseau, j’en déduis qu’elle ne sert pas de passerelle internet.
Ta règle iptables est presque bonne, mais il faut la placer sur ta passerelle … C’est sur celle ci qu’il faut dire :

Tous les paquets à destination de l’internet sur le port 80, tu me les force sur le proxy sur le port 3128.
Parce qu’autrement, comment veux tu que ton proxy capte et force des paquets qui ne lui sont pas destinés, et qui par défaut ne passent même pas par lui ?

Soit, par exemple :

10.0.0.1 -> Passerelle internet
10.0.0.2 -> Proxy Squid

Il faudra sur ta passerelle une règle dans ce genre :

Traduction : Dans le pré-routage de la table nat, les paquets sur le port 80 prévus pour être translatés (Puisqu’on est dans la table NAT - Network Address Translation), mais ne venant pas du proxy (! -s 10.0.0.2), on les translate dans le proxy sur le port 3128.

Le “! -s 10.0.0.2” permets de ne pas appliquer cette règle au paquets provenant du proxy, sinon ton proxy squid enverra ses paquets vers la passerelle, qui dira : Tiens, un paquet a destination du web … On m’a dit de les envoyer au proxy. Et le serpent se mord la queue.

Attention, dans ce cas de figure il faut aussi faire en sorte que les paquets de réponse émis par le proxy vers le client repassent par le routeur, ce qui n’est pas le cas par défaut (le proxy et le client sont dans le même réseau donc communication directe). Deux moyens : une règle SNAT/MASQUERADE sur le routeur ou du routage avancé sur le proxy pour les connexions redirigées.