Transparentne proxy w Squid

  • Data: 2012

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

  • httpd_accel_host virtual
    httpd_accel_port 80
    httpd_accel_with_proxy on
    httpd_accel_single_host off
    httpd_accel_uses_host_header on
  • Squid 2.6

  • 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.

Powrót »