シェフを使っています。ファイアウォールレシピによって:
firewall 'default'
firewall_rule 'ssh' do
port 22
end
内部的には、次のコマンドを作成してファイアウォールを設定します/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ネットワーク構成の経験がないので、どのように進むべきかわかりません。ファイアウォールの起動時にこのファイルを実行するように設定する簡単な方法はありますか?私はレシピを間違って作ったのでしょうか?
答え1
/etc/sysconfig/firewalld-chef.rules
ファイアウォールガイドラインは、ファイアウォールルールの状態を追跡するために使用されます。実行する必要があるコマンドのリストを作成し、そのリストがファイルの内容と異なる場合は、ルールセットを消去してから、ファイル内のすべてのコマンドを実行してファイル全体を再適用します。必ずしもファイルを直接実行する必要はありません。
このレシピの元のロジックに貢献した人がいたので、それらがどのように使用されたかについて詳細に話すことはできませんが、タスクを実行することがルールが:save
永続的であることを確認する予想される方法のようです。起動時にルールが適用されるようにするには、:save
すべてのFirewall_rulesが適用された後にファイアウォールリソースのアクションを実行してみてください。