Debian Busterのファイアウォールをufwからfirewalldへ移行したのですが、firewall-cmd --reload
するとクラッシュしてしまいます。
journalctlを使ってログを眺めると、このようなエラーを吐いてました。
ERROR: COMMAND_FAILED: '/usr/sbin/ip6tables-restore -w -n' failed: ip6tables-restore v1.8.2 (nf_tables): line 4: RULE_REPLACE failed (No such file or directory): rule in chain INPUT ERROR: 'python-nftables' failed: internal:0:0-0: Error: No such file or directory internal:0:0-0: Error: No such file or directory
samjhandleyさんのこのIssueによると、iptables 1.8.2のバグなんだとか。
確認してみるとbusterのレポジトリにあるiptablesは1.8.2-4で、buster-backportsのiptablesは1.8.5-3でした。
余談ですが、Debian Busterからnftablesがデフォルトとなりました。iptablesパッケージの中身もnftablesなので、nftablesパッケージをインストールする必要はありません。
buster-backportsレポジトリの追加
必要に応じてbackportsレポジトリを追加してください。
/etc/apt/sources.list.d/buster-backports.list
deb https://deb.debian.org/debian buster-backports main contrib non-free
iptables 1.8.5のインストール
backportsからパッケージ取得するには、aptに-t buster-backports
を指定します。
# apt update # apt install -t buster-backports iptables $ iptables --version iptables v1.8.5 (nf_tables)
firewalldの再起動
# systemctl restart firewalld.service # firewall-cmd --reload # journalctl -xeu firewalld.service
firewalldは正常にリロードできるし、systemd serviceのログにもエラーは出ていません。