1

Я настроил базовую виртуальную машину 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

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

Просто добавьте правило для перенаправления 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .