У меня такая настройка сети с внешней и внутренней сетями.
Я успешно запустил squid с прокси для внутреннего браузера, и теперь я хочу сделать его прозрачным, но с некоторыми проблемами.
сеть
Во-первых, я изменил "http_port 8080 intercept", но у меня возникли проблемы с настройкой правильных Iptables на внешнем сервере, поскольку пакет не возвращается в окно squid.
iptables --policy INPUT DROP
iptables --policy OUTPUT DROP
iptables --policy FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -0 lo -j ACCEPT
iptables -t nat -A POSTROUTING -o enpos3 (this is NAT) -j MASQUERADE
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 8080 -j ACCEPT
iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to-destination 10.10.1.254:8080
iptables -t nat -A PREROUTING -i enp0s8 -p tcp --dport 80 -j REDIRECT --to-port 8080
Это далеко, насколько я понял, и Интернет отлично работает на внутреннем ПК, но я не уверен, как перенаправить пакет http 80 в ящик Squid (10.10.1.254:8080
)
Если ваш Squid работает на шлюзе по умолчанию (порты перехвата 3126 и 3127), то следующие команды iptables позволяют перенаправлять трафик HTTP / HTTPS из вашей локальной сети в экземпляр Squid.
# redirect HTTP to locally installed Squid instance
-A PREROUTING -i ens33 -p tcp --dport 80 -j REDIRECT --to-ports 3126
# redirect HTTPS to locally installed Squid instance
-A PREROUTING -i ens33 -p tcp --dport 443 -j REDIRECT --to-ports 3127
Взято из руководства "Прозрачная фильтрация HTTPS с использованием Squid" на https://docs.diladele.com/tutorials/transparent_proxy_ubuntu/index.html