Witam,
Właśnie się zastanawiam jak przeskoczyć taki problem:
Maszyna ze squidem jest w tej samej klasie adresowej co reszta sieci. Aby transparent proxy działało, trzeba użyć regułek:
ptables -t nat -A PREROUTING -i interfejsLAN -s ! serwer-squid -p tcp --dport 80 -j DNAT --to serwer-squid:8080 iptables -t nat -A POSTROUTING -o interfejsLAN -s sieć-lokalna -d serwer-squid -j SNAT --to brama iptables -A FORWARD -s sieć-lokalna -d serwer-squid -i interfejsLAN -o interfejsLAN -p tcp --dport 8080 -j ACCEPT
Gdzie: serwer-squid: adres serwera na którym się znajduje squid. sieć-lokalna: zakres adresowy sieci lokalnej, np. 192.168.1.0/24. interfejsLAN: nazwa interfejsu sieciowego od strony sieci lokalnej, np.: eth0. brama: adres serwera na którym są uruchamiane te reguły przekierowujące.
Transparent proxy działa piknie, ale są dwa problemy (właściwie to jeden ten sam). 1) Do squida docierają pakiety ze zmienionym adresem nadawcy, przez co redirector nie dostaje adresu klienta, tylko adres bramy, przez co winetkowanie czy autoryzacja nie będą działać. 2) j/w tyle że problem rozbija się o logi. Wszystkie połączenia będą z adresu bramki.
Można oczywiście przenieść maszynę ze squidem do innej klasy adresowej, ale to nie jest rozwiązanie. Jakieś inne pomysły?