我正在使用厨师防火墙食谱通过以下方式:
firewall 'default'
firewall_rule 'ssh' do
port 22
end
它通过将如下命令写入内部来配置firewalld /etc/sysconfig/firewalld-chef.rules
:
firewall-cmd --direct --add-rule ipv4 filter INPUT 50 -p tcp -m tcp -m multiport --dports 22 -m comment --comment 'ssh' -j ACCEPT
firewall-cmd --direct --add-rule ipv6 filter INPUT 50 -p tcp -m tcp -m multiport --dports 22 -m comment --comment 'ssh' -j ACCEPT
但是,在 之后systemctl restart firewalld
,这些更改不再应用。我缺乏 Linux 网络配置经验,所以我不知道如何继续。有没有一种简单的方法可以设置此文件以与firewalld启动一起运行?我的食谱做错了吗?
答案1
防火墙说明书用于/etc/sysconfig/firewalld-chef.rules
跟踪防火墙规则的状态。它构建应运行的命令列表,如果该列表与该文件的内容不同,它会通过清除规则集然后运行文件中的每个命令来重新应用整个文件。它不一定直接运行该文件。
我们有人在这个配方中贡献了原始逻辑,所以我无法告诉你更多关于他们使用它的方式,但运行操作:save
似乎是确保规则是永久性的预期方法。如果您尝试确保在启动时应用规则,请尝试:save
在应用所有firewall_rule之后运行防火墙资源的操作。