通过iptables镜像端口


11

我有一个专用的Linux(Debian 7.5)根服务器,其中设置了许多来宾。来宾是KVM实例,并通过网桥工具(NAT,内部IP,将主机用作网关)获得网络访问。

例如,一个KVM是我的WebServer来宾,可以通过主机IP通过以下方式访问它:

    iptables -t nat -I PREROUTING -p tcp -d 148.251.Y.Z 
--dport 80 -j DNAT --to-destination  192.168.100.X:80 

我对其他服务也一样,使它们独立,NAT和隔离。

但是,一个来宾应该是网络监视器,并且应该执行网络流量检查(如IDS)。通常,在非虚拟设置中,我将使用VACL或SPAN端口来镜像流量。当然,在这台主机中,我无法做到这一点(很容易,因为我不想使用复杂的虚拟交换方法)。

  1. 我可以使用iptables获得端口镜像,并将所有入口和出口流量重定向到一个KVM来宾吗?所有来宾都有专用的界面,例如vnet1
  2. 是否可以根据协议(例如VACL转发规则,仅捕获HTTP)有选择地转发流量?
  3. 当我需要保留vnet1为管理界面(使用IP)时,来宾是否需要特定的界面设置?

我很乐意指出正确的方向:

iptables         1.4.14-3.1
linux            3.2.55
bridge-utils     1.5-6

非常感谢 :)

Answers:


14

将根服务器预路由模块Mangle表规则放在前面,该怎么办?

iptables -I PREROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee

然后在路由后模块Mangle表规则之前添加类似

iptables -I POSTROUTING -t mangle -j ROUTE --gw 192.168.200.1 --tee 

其中192.168.200.1是网络监视器。

这些规则将镜像所有传入和传出的流量,将其转发到192.168.200.1

编辑:

mangle table specific
  -j ROUTE            (explicitly route packets, valid at PREROUTING)
      options:
      --iface <iface_name>
      --ifindex <iface_idx> 

但您也可以使用类似

iptables -I PREROUTING –t mangle –i eth0 –j TEE –gateway 192.168.200.1

iptables -I POSTROUTING –t mangle –j TEE –gateway 192.168.200.1

这里TEE现在是一个目标,其在PREROUTING需要更多的像IE选项-i-p


注意:使用新版本的SE读者iptables不再具有ROUTE目标,请参阅unix.stackexchange.com/a/174619/31228上的答复。
乔纳森·本·阿夫拉罕
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.