@bro36
системный администратор

Как разнести по отдельным серверам шлюз и прозрачный прокси Squid?

Имеется два сервера. Один шлюз на Ubuntu с ip 192.168.0.1, на нем настроен файрвол, осуществляется NAT, он является для всех компьютеров в локальной сети шлюзом по умолчанию, dns сервером, dhcp сервером. Второй сервер на Debian (ip 192.168.0.2), на нем установлен только squid и он настроен на прозрачную фильтрацию. На шлюзе делаю iptables -t nat -A PREROUTING -i eth0 ! -s 192.168.0.2 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.2:3128. Но этого не достаточно, страницы не открываются, нужно провести еще какие то манипуляции, но не пойму какие. Сам squid настроен верно, когда указываю его как шлюз по умолчанию для компа в локальной сети весь трафик через него прозрачно проксируется, но фишка в том что сервер со squid'ом не должен быть шлюзом по умолчанию.
  • Вопрос задан
  • 1307 просмотров
Пригласить эксперта
Ответы на вопрос 1
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
У вас правил не хватает:
iptables -t nat -m multiport -A PREROUTING -o eth0 -s 192.168.0.2 --dport 80,8080 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -d 192.168.0.2 -j SNAT --to 192.168.0.1
iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t mangle -A PREROUTING -p tcp -d 192.168.0.2 --dport 3218 -j DROP

Первое пускает трафик от прокси в мир, второе - разворачивает ответы от прокси клиентам через себя, третье если не было - в конец цепочки, четвертое опциональное и блочит трафик до порта прокси отовсюду кроме шлюза.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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