我想阻止流量运行到我的机器上运行的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
当我在桥上连接他时,我无法连接到外部网站。如果我删除最后一行,当然,一切正常,但一切都是开放的。所以这不太对。
答案 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。