Squid - прозрачный прокси с сетевыми картами в одной подсети?

4858
fistameeny

Я настроил базовую виртуальную машину Squid + DansGuardian, которую я должен был использовать для мониторинга и блокировки определенных веб-сайтов. В настоящее время веб-трафик проходит через маршрутизатор, установленный в качестве шлюза - его IP-адрес выдается службой DHCP на сервере Linux. Я хотел бы направить некоторых клиентов к другому шлюзу, основываясь на их MAC-адресе (что я уже могу сделать). Установка выглядит следующим образом:

Router (Gateway) - 192.168.0.1 DHCP/DNS Server - 192.168.0.10 Squid Server - 192.168.0.254 Client PCs - 192.168.0.100-199 

Тем не менее, большинство учебников требуют, чтобы Squid принимал трафик на 1 NIC, а затем передавал его во внешний мир на другой NIC в другой подсети.

Возможно ли, чтобы Squid принимал трафик на своем IP (192.168.0.254) и передавал его на шлюз (192.168.0.1), чтобы покинуть здание как обычно? Если так, есть ли у кого-нибудь соответствующие правила iptables, которые они могли бы дать мне?

1

1 ответ на вопрос

1
Serge

Вам не нужно иметь отдельный интерфейс для этой цели.

Просто добавьте правило для перенаправления HTTP-трафика и NAT для остальных:

iptables -t nat -A PREROUTING -i eth0 -m iprange --src-range 192.168.0.100-192.168.0.199 -p tcp --dport 80 -j REDIRECT --to-port 3128 iptables -t nat -A POSTROUTING -o eth0 -m iprange --src-range 192.168.0.100-192.168.0.199 -j SNAT --to-source 192.168.0.254 

Предполагается, что политика по умолчанию для всех цепочек установлена ​​на принятие. Кроме того, вам нужно будет включить пересылку ipv4 на этом хосте, и его шлюз по умолчанию должен быть настроен на 192.168.0.1.

Похожие вопросы