我有一台专用的 Linux (Debian 7.5) 根服务器,其中设置了一些客户机。客户机是 KVM 实例,通过 bridge-utils (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 端口来镜像流量。当然,在这台主机内,我无法做到这一点(容易地,因为我不想使用复杂的虚拟交换方法)。
- 我可以使用 iptables 获取端口镜像,并将所有入口和出口流量重定向到一个 KVM 客户机吗?所有客户机都有一个专用接口,例如
vnet1
。 - 是否可以根据协议有选择地转发流量(例如 VACL 转发规则,它仅抓取 HTTP)?
- 当我需要将其保留
vnet1
为管理接口(带有 IP)时,客户机是否需要特定的接口设置?
我很高兴能指出正确的方向:
iptables 1.4.14-3.1
linux 3.2.55
bridge-utils 1.5-6
多谢 :)
答案1
那么如何通过以下方式在根服务器预路由模块 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
now 是一个目标,它PREROUTING
需要更多选项,例如 ie -i
、、-p
等