Transparentne proxy w Squid
W dużych sieciach trudno jest wymóc na użytkownikach obowiązek korzystania z serwera proxy. Wielu po reinstalacji systemu zapomina o ponownej konfiguracji przeglądarki. Rozwiązaniem tej kwestii jest wymuszenie komunikacji z serwerami www za pośrednictwem serwera proxy. Aby tego dokonać musimy mieć skompilowanego squida-a z opcją:'--enable-linux-netfilter'. Pierwszym krokiem jest odpowiednie skonfigurowanie squid-a. W tym celu edytujemy plik squid.conf. W zależności od wersji na której pracujemy dokonujemy następujących modyfikacji:
- Squid 2.5
- Squid 2.6
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_single_host off
httpd_accel_uses_host_header on
http_port 3128 transparent
Teraz (przy założeniu że squid słucha np. na porcie 3128 i uruchomiony jest na komputerze pełniącym rolę bramy sieciowej - natomiast eth1 to wewnętrzny interfejs) dodajesz do firewalla prostą regułkę:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Jeśli mamy więcej wewnętrznych interfejsów i chcemy żeby na każdym działał transparentnie Squid dodajemy poniższą regułkę:
iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128
Na koniec restartujemy firewalla, squid-a i możemy się cieszyć przezroczystym proxy.