Zdarza się - naprawdę - popełniać błędy. Jeden z problemów był niedopatrzeniem, drugi błędem. Długo szukałem rozwiązania na to aby Squid nie blokował stron hostowanych w różnych podsieciach.
Do rzeczy. Pracuję obecnie w infrastrukturze złożonej z kilku podsieci spiętych ze sobą poprzez IPSec’a, routowanych za pomocą Iptables etc, etc. Zupełnie niedawno w sieci lokalnej (czyli w tej w której się obecnie znajduję - 192.168.200.0/24) postawiłem na firewallu serwer proxy - Squid + Dansguardian.
Pierwszym zauważonym przeze mnie problemem był brak łączności na porcie 80 z resztą podsieci. Stosowałem wówczas taką oto regułkę w Iptables:
$IPTABLES -t nat -A PREROUTING -s 192.168.200.0/24 -d 0.0.0.0/0.0.0.0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Prosta - prawda ? Oczywiście, że prosta - przekazuje cały ruch wychodzący z sieci 192.168.200.0/24 do firewall’a (192.168.200.254 - na nim właśnie stoi Squid).
Dość szybko okazało się że takie rozwiązanie nie jest zbyt dobre, ponieważ próbując się dobrać do serwera w sieci 192.168.1.0/24 dostawałem w przeglądarce komunikat mniej więcej o treści “(101) Network is unreachable” co, w istocie, wyjątkowo mnie irytowało.
Dziś rano jednak dokonałem - nazwijmy to odkrycia. Znalazłem w googlownicy rozwiązanie mojego problemu, poniekąd wspierając się narzędziem ipcalc…
Regułka w Iptables wygląda mniej więcej tak:
$IPTABLES -t nat -N PROXY1
$IPTABLES -t nat -I PROXY1 -s 192.168.200.0/24 -p tcp –dport 80 -j DNAT –to-destination 192.168.200.254:8080
$IPTABLES -t nat -A PREROUTING -d ! 192.168.0.0/16 -j PROXY1
$IPTABLES -t nat -A PREROUTING -d ! 192.168.0.0/16 -j LOG –log-level debug –log-prefix “PROXY: “
Zapewne zapyta ktoś dlaczego użyłem parametru “192.168.0.0/16″… Ano dlatego:
karol@karol-lap:~$ ipcalc 192.168.0.0/16
Address: 192.168.0.0 11000000.10101000. 00000000.00000000
Netmask: 255.255.0.0 = 16 11111111.11111111. 00000000.00000000
Wildcard: 0.0.255.255 00000000.00000000. 11111111.11111111
=>
Network: 192.168.0.0/16 11000000.10101000. 00000000.00000000
HostMin: 192.168.0.1 11000000.10101000. 00000000.00000001
HostMax: 192.168.255.254 11000000.10101000. 11111111.11111110
Broadcast: 192.168.255.255 11000000.10101000. 11111111.11111111
Hosts/Net: 65534 Class C, Private Internet

0 Odpowiedzi do “Admina ze squid’em przypadków kilka :)”