web-dev-qa-db-ja.com

centOS 7 FirewallDが直接ルールを削除する

システムを6.5から7にアップグレードした後、動的ファイアウォールの実装を学び始めましたが、次のルールを追加するのに失敗しました

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 1 -j DROP

これにより、マシンはすべての出力を外部にドロップします。

使ってみた

firewall-cmd --permanent --direct --remove-rule ipv4 filter OUTPUT 1 -j DROP

皆様をお迎えします。

ただし、

firewall-cmd --reload

そして

firewall-cmd --direct --get-all-rules

、私はこのルールが再び自動的に戻ってくるのを見つけました。

私も試しました

firewall-cmd --complete-reload

効果はありません。

私は今何ができますか?

7
Mark

ルールはdirect.xmlに記録されているため、最終的には削除コマンドが一度にしか機能しないことがわかります

したがって、解決策は簡単です。direct.xmlを編集して、対応する行をコメント化するか、jsutで削除します。

8
Mark

頑固に永続的なリダイレクトルールに取り組んだ後、次のテストを通じて気付きました。

  1. iptablesルールDBは一時的です
  2. firewall-cmd --permanentルールDBは再起動後も保持され、iptablesルールDBは再起動後に書き換えられます

  3. firewall-cmd --permanent --directルールDBが/etc/firewalld/direct.xmlに保存されているのは、DBファイルが削除されない限り、firewall-cmd [--permanent] --direct --remove-ruleにもかかわらず存続します。

  4. firewall-cmd [--permanent] --direct --query-rule/etc/firewalld/direct.xmlのルールの永続化について嘘をつきます

4
Matthew

firewall-cmd [--permanent] --direct --remove-rules {ipv4 | ipv6 | eb}テーブルチェーン

1

同じことを試してみたところ、実行後にdirect.xmlが空になりました

firewall-cmd --direct --remove-rule ...

--permanentオプションなし。
リロード後、削除された直接のルールはありません。

このオプションを使用すると、ルールはリロード後に戻ってきました。

1

Direct.xmlファイルを指定する必要はありません。次を実行します。

# systemctl restart firewalld

それで十分です。

0
The IT Guy