Настройка Iptables для Transparent Proxy

Собственно говоря, ничего сложного в этом всем нет, нам необходимо пробросить весь входящий в 80 порт трафик на внутреннем интерфейсе в порт прокси, например 3128. Есть два способа, первый это при помощи DNAT, он удобен в том случаи если шлюз сети и прокси сервер это у вас разные компьютеры и прокси сервер находиться в сети со рядовыми пользователями. Второй, при помощи REDIRECT, это если наша прокся и шлюз это один и то же сервер. В первом случаи  нам необходимо сделать 3 записи в iptables, первая пробрасывает весь трафик идущий на порт 80 исключая трафик от squid-box(сервер squid) в порт 3128 squid-box. Вторая включает NAT трансляцию для squid-box на нашем шлюзе iptables-box. И последняя разрешает форврадинг пакетов идущих на порт 3128 из локальной сети local-network в squid-box

iptables -t nat -A PREROUTING -i eth0 -s ! squid-box -p tcp —dport 80 -j DNAT —to squid-box:3128
iptables -t nat -A POSTROUTING -o eth0 -s local-network -d squid-box -j SNAT —to iptables-box
iptables -A FORWARD -s local-network -d squid-box -i eth0 -o eth0 -p tcp —dport 3128 -j ACCEPT

Если же у нас ситуация такая, что шлюз и прокси сервер это один и тот же сервер, то достаточно будет простого редиректа:

iptables -A PREROUTING -t nat -i eth0 -p tcp —dport 80 -j REDIRECT —to-port 3128

 

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>