阻止所有流量但在VM的特定端口上

时间:2014-09-23 17:41:34

标签: linux virtual-machine iptables

我想阻止流量运行到我的机器上运行的VM,除了某些端口。我在虚拟网桥中添加了一些规则来接受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 当我在桥上连接他时,我无法连接到外部网站。如果我删除最后一行,当然,一切正常,但一切都是开放的。所以这不太对。

1 个答案:

答案 0 :(得分:0)

如果您想要将流量丢弃到您的VM,为什么还要过滤另一个方向,您真的想阻止您的VM访问互联网吗?

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连接转移到特定接口,并在thad设备上也打开特定端口。

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