我正在使用 Centos 7 从 iptables 迁移到 firewalld。在过去,我曾经/etc/sysconfig/iptables
在#
, ETC)。
现在,似乎当前(永久)配置是从/etc/firewalld/
文件(尤其是/etc/firewalld/zones/*.xml
)中读取的。我想我可以在那里添加 xml 注释,但似乎好的做法不是直接编辑这些文件,而是通过firewall-cmd
(不是?)。
因此,我不确定向规则添加注释的标准或推荐方式是哪种。
有什么建议么?
已编辑:作为记录,我已经验证 xml 注释不会在firewall-cmd
修改后保留。
截至 2/2020 年,我认为
firewalld
使用足够广泛,易于注释规则 fromfirewall-cmd
或 fromfirewall-config
非常重要,原因在 OP 中讨论。建议我们在CMS中记录规则,通过
firewall-cmd --direct
、通过ipsets或手动编辑区域文件,所有这些都使管理复杂化,并破坏firewalld
了使防火墙配置更加透明的目的。因此,在可用之前,我将通过选项来
firewall-cmd --comment
注释我的规则。例如,log prefix
firewall-cmd --add-rich-rule
生成的注释作为副作用出现在我的系统日志中,但现在的输出
firewall-cmd --list-all-zones
是自记录的:该评论也记录在我的区域文件中:
我意识到即使是这种方法也会通过引入丰富的规则使配置过于复杂,但现在相信注释的好处是值得的。
尽管在 firewall-cmd 手册页中,有一个关于直接选项的部分,允许您提供参数,因此您可以执行以下操作:
firewall-cmd --direct --add-rule <table> <chain> <priority> <args> -c <some comment>
虽然,正如迈克尔汉普顿所说,这可能不是最好的事情。
仔细想想,我觉得这
firewalld-cmd
件事有点傻。毕竟,XML 配置文件是人工可编辑的。这对我来说没有什么意义,必须学习一层额外的命令(嗯,一个命令,但有大量参数)只是为了编辑一些简单而整洁的 XML 文件(*)。我打字有点傻
firewall-cmd --permanent --zone=work --add-port=445/tcp
只是为了添加以下行
/etc/firewalld/zones/work.xml
<port protocol="tcp" port="445"/>
因此,至少现在,考虑到 XML 元素不包含注释属性(在那个方向有一些 请求),我倾向于以下策略:忘记
firewalld-cmd
(甚至可能删除它),编辑 XML自己创建文件,并自由添加 XML 注释。(*) 确实
firewalld-cmd
允许添加动态(非永久)规则。但我敢打赌,这不是一个非常常见的情况。