我已经设置了一台 Centos 7 服务器来运行 Nagios。默认情况下,操作系统有相当严格的 iptables 规则,这里有一位朋友建议通过输入以下命令来修复此问题:
iptables -A IN_public_allow -p tcp --dport 80 -j ACCEPT
这一切都正常,直到我重新启动服务器,此时我必须再次输入命令,否则服务器将再次无法访问。
这是 iptables 的正常行为吗?我可以做些什么来修复它吗?
答案1
CentOS 7 使用防火墙默认管理防火墙。
您可以使用以下命令简单地将端口添加到firewalld:
firewall-cmd --add-service=http --permanent # Startup config
firewall-cmd --add-service=http # Running config
答案2
这肯定会“修复”相当严厉的规则 - 但会在您的系统中产生严重的安全漏洞,而且效率低下。
实际上,您应该在链的开头插入 2 条规则 - 第一条规则应该允许相关且已建立的数据包进入(任何端口),另一条规则允许新数据包进入端口 80。
除非您真的知道自己在做什么,否则直接使用 iptables 是个坏主意。防火墙在启动时从 /etc/sysconfig/iptables-config 加载。除非您真的知道自己在做什么,否则编辑它是个坏主意。
如果您阅读手册,那么您就会知道您可以通过运行使 iptables 更改持久化,/sbin/service iptables save
但这是建立在手动更改 iptables 规则的前提下。
我手边没有 centos 机器可以检查,但如果它是 RHEL 的直接克隆,那么它应该有一个名为防火墙配置的 GUI 工具,允许进行更改而不会破坏任何东西。