为特定端口设置透明代理模式时无法获得流量


0

我想捕获来自HostA-> HostB的HTTP服务调用,以测试HostA上的客户端是否替换HTTP响应。两种操作系统都是Linux。我尝试跟随但失败了。推荐的方法是什么?

我想使用透明代理模式,因为我无法修改客户端,也无法将所有流量从HostA重定向到hostB,因为其他服务也在HostA上运行。我只想将客户端的连接从主机A重定向到主机B。主机A中的客户端通过HTTP在特定端口10001上的主机B上调用服务。

我尝试用mitmproxy设置HostC(HostA和HostC在同一子网中)HostA(ip_A)-> HostC(ip_C)mitmproxy-> HostB(ip_B),我将ip表设置为构建透明模式。

以下是我在HostA上设置的内容

sudo iptables -t mangle -I OUTPUT -p tcp --dport 10001 -j MARK --set-mark 1
sudo ip route add default via ip_C table 100
sudo ip rule add fwmark 0x1 table 100

在HostC上

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -o eth0 -p tcp --dport 10001 -j REDIRECT --to-port 8080
mitmproxy -T --host

这行不通。HostA连接超时上的客户端。如果我在HostA上尝试traceroute

traceroute ip_B -p 10001 -T

它显示ip_B在HostA的TCP上无法访问

我还尝试在HostA上安装mitmproxy,但是当我尝试重定向HostA上的端口10001的流量时

sudo iptables -t nat -A OUTPUT -p tcp --dport 10001 -j REDIRECT --to-port 8080
mitmproxy -T --host

该服务调用可由HostA上的mitmproxy捕获,但无法获得响应。

非常感谢你的帮助。


对不起,错字,这是10001
shikn

您到底想做什么?您只想看看路况?仅使用打开了端口镜像并且wireshark或tcpdump 的交换机怎么办?
Appleoddity

哦,我想捕获响应并将HostA的请求替换为响应。
shikn

也许软件的完整更改可能会帮助查看softwarerecs.stackexchange.com/questions/4239/…–
罗斯

Answers:


0

也许-一旦数据包到达MITM服务器,它现在将到达端口8080-但是HOST_A Web服务器仍在10001上-那么您是否不需要执行另一个IPTABLES将其恢复为10001?我认为你在这方面比我强,但我猜

sudo iptables -t nat -A OUTPUT -p tcp --dport 8080 -j REDIRECT --to-port 10001

会做到的

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.