具有内部和外部网络的透明代理 Squid

具有内部和外部网络的透明代理 Squid

我有像这样的网络设置,包括外部网络和内部网络。

我已经成功让 squid 在内部浏览器上运行代理,现在我想将其设置为透明,但是遇到了一些问题。

网络

这是我的网络

首先,我确实改变了“http_port 8080 拦截”,但是在外部服务器上设置正确的 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

答案1

如果您的 Squid 在默认网关上运行(拦截端口 3126 和 3127),那么以下 iptables 命令允许将 HTTP/HTTPS 流量从您的 LAN 内部重定向到 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

摘自“使用 Squid 进行透明 HTTPS 过滤”教程,网址为 https://docs.diladele.com/tutorials/transparent_proxy_ubuntu/index.html

相关内容