所以我对iptable路由相对较新,但我想做的事情应该很简单。
我试图引导来自某个IP块的流量,我使用名为inetsim的程序,它的作用是使用IP地址作为绑定地址,这将类似于路由器。我根据配置说明使用192.168.444.1作为我的网关和DNS服务器。底部有用于路由的选项,但它们尚未友好。我有两个名为eth0和eth1的eth端口,它们上的IP地址分别为10.10.10.123和192.168.444.1。我在10.10.10.250上有一个报告服务器。
机器如下 192.168.444.2 windows7sp1 192.168.444.1 + 10.10.10.123 debian服务器
报告服务器具有一个程序,用于设置从目标计算机到报告服务器的连接。在正常情况下,这将毫无障碍地工作,但是inetsim是一种互联网黑洞,可以创建iptables,将所有流量路由到包含未知服务的fakenet,它们被路由到虚拟端口1.
我需要一种方法,将目的地为10.10.10.250:48002的数据包从192.168.444.2 [连接到192.168.444.1]转发到10.10.10.123 [除非有更简单的方法]。我尝试过snat和dnat,但似乎它会将数据包分解到不同的地方,因为服务器会拒绝它获得的数据包。 Windows机器声明它已建立连接,但就像我通过数据包检查所说的那样,它似乎不喜欢这些数据包。
我希望它完成的方式是根本不修改实际的数据包,或者至少尽可能少地修改它。如果您需要我制作的iptables规则或者inetsim输出的规则,我可以发布这些规则。
感谢任何帮助。感谢你们!
[编辑:我已经尝试了很多不同的规则,我不仅仅是因为我想让别人为我做这件事。我已经这样做了几个星期,并让它工作了一次。然后我试图复制它,有些东西坏了。]
答案 0 :(得分:0)
如果所有涉及的主机都将其段中的Debian IP作为默认路由,则根本不需要iptables,只需在/etc/sysctl.conf中激活net.ipv4.ip_forward,如果需要保持iptables激活make确保FORWARD表的默认策略是ACCEPT。
如果只有192.168.444.2计算机的.1 IP作为路由,但报告服务器没有(您将在报告服务器中看到排队为SYN_RECV的连接),那么您需要一个MASQUERADE目标:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
答案 1 :(得分:0)
我已经检查了pastebin link,看来这些规则会造成麻烦:
-A PREROUTING -j INetSim_DNAT_12257
-A POSTROUTING -j INetSim_SNAT_12257
-A INetSim_DNAT_12257 -s 192.168.444.4/32 -d 10.10.10.250/32 -p tcp -m tcp --dport 48002 -j DNAT --to-destination 192.168.444.4:48002
-A INetSim_SNAT_12257 -s 192.168.444.4/32 -d 192.168.444.4/32 -p tcp -m tcp --dport 48002 -j SNAT --to-source 10.10.10.125
您能否删除它们及其相关链并查看问题是否已解决?
编辑:我注意到另一条可能存在问题的规则。请删除它,然后重试:
-A INetSim_12257 -s 192.168.444.4/32 -d 10.10.10.250/32 -p tcp -m tcp --dport 48002 -j MARK --set-xmark 0x1/0xffffffff