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.