我有一个装有 2 个网卡的 linux 机器,用于检查通过端口 80 的流量。一张网卡用于上网,另一张卡连接到网络交换机。关键是为了调试目的,能够检查连接到该交换机的设备上的所有 HTTP 和 HTTPS 流量。
我已经为 iptables 编写了以下规则:
nat
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.2.1:1337
-A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 1337
-A POSTROUTING -s 192.168.2.0/24 -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)
在 192.168.2.1:1337,我有一个使用 Charles ( http://www.charlesproxy.com/ ) 进行录制的透明 http 代理。
对于端口 80 一切正常,但是当我为指向端口 1337 的端口 443 (SSL) 添加类似的规则时,我通过 Charles 收到有关无效消息的错误。
我之前与 Charles ( http://www.charlesproxy.com/documentation/proxying/ssl-proxying/ )在同一台计算机上使用过 SSL 代理,但由于某种原因透明地执行它没有成功。我在谷歌上搜索的一些资源说这是不可能的 - 如果有人可以解释原因,我愿意接受它作为答案。
请注意,我可以完全访问所描述的设置,包括连接到子网的所有客户端 …