2014-09-23 62 views
0

我想阻止流量到我的机器上运行的虚拟机,除了某些端口。我在虚拟网桥中添加了一些规则,以接受FORWARD链中过滤器表中端口80上的流量,因为虚拟网桥设置为转发来自VM的流量。阻止所有流量,但在虚拟机的特定端口上

我写了下面:

sudo iptables -F sudo iptables -I FORWARD -o [bridge_iface] -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -I FORWARD -i [bridge_iface] -p tcp --sport 80 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -I FORWARD -o [bridge_iface] -p tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -I FORWARD -i [bridge_iface] -p tcp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT sudo iptables -P FORWARD DROP 当我连接托特他VM在桥上我无法连接到一个外部网站。如果我删除最后一行,当然,一切正常,但一切都是开放的。所以这不太合适。

+0

你为每个规则指定了什么接口作为'[bridge_iface]'?尝试添加一些即席记录规则,或者在您测试连接时监视哪些计数器递增。 – Yoel 2014-09-23 22:12:13

回答

0

如果你想丢弃流量到你的虚拟机,为什么你也过滤另一个方向,你真的想阻止你的虚拟机访问互联网?

iptables -I FORWARD -o [bridge_iface] -m state --state NEW,ESTABLISHED -j DROP 
iptables -I FORWARD -o [bridge_iface] -p tcp -m state --state NEW,ESTABLISHED --dport 80 -j ACCEPT 
iptables -I FORWARD -o [bridge_iface] -p udp -m state --state NEW,ESTABLISHED --dport 53 -j ACCEPT 

请注意:DNS主要使用UDP,而不是TCP,所以您应该过滤UDP。

关于我的设置的整个想法:您应该允许您的计算机转发任何内容,默认情况下只允许DROP连接到特定接口,并在设备上打开特定端口。

我怀疑你在端口80和53上的传入连接上使用端口转发由VM提供服务,我是否正确? 如果您想拒绝您的虚拟机访问互联网,除了我们刚刚设置的两个端口,您必须在脚本中更改-o至-i。