我有一个在 Ubuntu 14.04 上运行的 KVM,带有几个客户机(主要是 CentOS7),位于 NAT 配置后面。
如果在主机服务器中激活了以下防火墙规则,则访客似乎无法访问互联网:
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --source 127.0.0.1 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p all -j DROP
iptables -A OUTPUT -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -i virbr0 -j ACCEPT iptables -A INPUT -i virbr1 -j ACCEPT
最后四行是我一直在尝试的尝试的一部分..没有运气!!
如果防火墙被禁用,一切都会正常。您能否建议我应该在脚本中包含哪些规则/配置?
答案1
经过我自己的几次尝试后,我找到了解决该问题的方法,只需在脚本中添加以下规则即可:
iptables -A 输入 -i virbr1 -j 接受
注意:virbr1 是我的虚拟机使用的本地 KVM nat 网络。
因此,脚本现在如下所示:
iptables -F
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --source 127.0.0.1 -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i virbr1 -j ACCEPT
iptables -A INPUT -p all -j DROP
将 DROP 规则作为最后一行非常重要..这是我目前的理解,但这里有人可能想给我们提供更多细节..