Прозрачный (transparent) прокси сервер Squid(реализация с PF)
В предыдущей статье Transparent (прозрачный) прокси сервер Squid, я описывал его реализацию с применением IPFIREWALL, но если у вас включена в ядре поддержка PF, то настраивать его нужно так.
В первую очередь надо собрать Squid с поддержкой PF:
[X] SQUID_PF Enable transparent proxying with PF
Если вы уже собрали без поддержки этой опции сборки, нужно сделать следующее:
cd /usr/ports/www/squid/ make config
После этой команды появится диалог настройки, останется запустить сборку и установку:
make FORCE_PKG_REGISTER=yes install clean
Если у вас Squid еще не был установлен, то можно обратиться к моей же статье Настройка прокси сервера Squid, в ней я описывал базовую устанновку и настройку Squid.
После установки, нужно внести в файл настроек Squid, те же изменения, что и в статье Transparent (прозрачный) прокси сервер Squid, а именно найти:
http_port 3128и добавить к ней опцию поддержки transparent:
http_port 3128 transparentИ перезапустить Squid:
/usr/local/etc/rc.d/squid restart
Теперь остается настроить firewall pf. В примере подразумевается что к сетевой карте em1, подключена локальная сеть 192.168.0.0/24.
Правило файервола будет выглядеть так:
rdr on em1 proto { tcp } from 192.168.0.0/24 to any port 80 -> 127.0.0.1 port 3128
Внесем эту строку в /etc/pf.conf, затем можно проверить корректность, выполнив команду:
pfctl -nf /etc/pf.conf
И если сообщений об ошибках не было, применить новые настройки:
pfctl -f /etc/pf.conf
Правило должно находится в той части файла в которой описываются правила NAT и RDR.
На этом настройка окончена.




By Rogue, 07.06.2009 @ 23:43
Спс, замечательная статья.