【问题标题】:I'm in iptable hell我在 iptable 地狱
【发布时间】:2015-07-12 20:08:28
【问题描述】:

所以我对 iptable 路由比较陌生,但我想做的事情应该很简单。

我正在尝试引导来自某个 IP 块的流量,我正在使用一个名为 inetsim 的程序,它的作用是使用 IP 地址作为绑定地址,这将变得类似于路由器。根据配置说明,我使用 192.168.444.1 作为我的网关和 DNS 服务器。底部有一些选项可用于路由,但它们还不够友好。我有 2 个名为 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 输出的规则,我可以发布这些规则。

感谢任何帮助。感谢你们!

[编辑:我已经尝试了很多不同的规则,我不只是问,因为我希望别人为我做这件事。我已经这样做了好几个星期了,并且成功了一次。然后我尝试复制它,但有些东西坏了。]

【问题讨论】:

  • 请附上route -niptables -L的输出。
  • 内核 IP 路由表目标网关 Genmask 标志 Metric Ref Use Iface 0.0.0.0 10.10.10.1 0.0.0.0 UG 0 0 0 eth0 10.10.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.10。 10.125 0.0.0.0 255.255.255.255 UH 0 0 0 eth1 192.168.444.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 iptables -L 不显示任何内容 pastebin.com/FnRF47MK 是 inetsim 从 inetsim.conf 文件中输出的粘贴或规则。
  • 你有ip forwarding enabled吗?每个ip tables 链的默认策略是什么?考虑到您声称inetsim 对其进行了修改,我也不明白ip tables -L 如何显示任何内容...
  • inetsim 使用 dnat 和 snat 以及 mangle,它不进行转发。默认值为接受,但它会将所有未知端口重定向到虚拟端口 1,如果您查看过去的 bin 文件,它将显示所有输入的规则。并启用转发。

标签: routing debian iptables honeypot


【解决方案1】:

如果所有涉及的主机在其网段中都将 Debian IP 作为默认路由,则根本不需要 iptables,只需在 /etc/sysctl.conf 中激活 net.ipv4.ip_forward,如果需要保持 iptables 激活,请制作确保 FORWARD 表的默认策略是 ACCEPT。

如果只有 192.168.444.2 机器有 .1 IP 作为路由,但报告服务器没有(您会看到报告服务器中的连接以 SYN_RECV 形式排队),您将需要一个 MASQUERADE 目标:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

【讨论】:

    【解决方案2】:

    我检查了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
    

    【讨论】:

    • 我可以删除后两个,但如果我删除其他的,那么使用它的全部意义就消失了。我需要这个来进行恶意软件分析,因此它将大部分流量发送到端口 1,但我会在一秒钟内摆脱其他流量。生病给你几个结果。如果您有建议,我也可以完全摆脱重定向规则并从普通的 iptables 中执行此操作。我已经这样做了一个多月..... :(
    • 我摆脱了它们,什么也没有,在我这样做之前它正在建立连接,但目标服务器(10.10.10.250)没有接受数据包。 :(
    • @user3878299,我用另一个建议编辑了我的答案。如果这不起作用,那么考虑到您之前的评论,似乎问题可能出在目标服​​务器上。它实际收到的是什么数据包?你确定它没有发送任何回复?请通过iptables -t nat -Ziptables -t mangle -Z 将数据包计数归零,通过iptables -t nat -L -v -niptables -t mangle -L -v -n 发送数据包并查看更新的计数。
    猜你喜欢
    • 2014-12-01
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多