LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問5
システム保護と監査/パケットフィルタリングの実装Debian 12 で配布されている /etc/nftables.conf には、先頭付近に flush ruleset という行がある。この行の役割として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)
- Anftables.service を停止するときに、ファイルに書かれたルールだけをカーネルから取り除く
- Bnft -f で読み込み直したときに既存ルールへ重複して追加されず、ファイルの内容で全体を置き換える
- Cルールに付けたカウンターの値だけを0に戻し、テーブルやチェインの定義はそのまま残しておく
- Diptables-nft等の他のツールが作成したテーブルは残し、nftで作成したテーブルだけを削除する
正解:B
解説
nft -f はファイルの内容を1つのトランザクションとしてカーネルに適用します。ファイルに table や rule の定義しか書かれていないと、読み込み直すたびに既存のルールセットへ同じルールが追加されてしまいます。先頭の flush ruleset は、読み込みの最初に既存のルールセットをすべて消去し、ファイルの内容で全体を置き換えるための行です。同じトランザクション内で処理されるため、消去から再定義までの間に無防備な状態が外から見えることはありません。なお flush ruleset は、iptables-nft が作成したテーブルも含めてすべてのテーブルを削除します。
選択肢ごとの解説
- A誤り。flush ruleset はファイルを読み込むたびに最初に実行される行です。サービス停止時の処理は nftables.service のユニットファイル側で定義されています。
- B正しい。読み込みのたびに既存のルールセットを消去してからファイルの内容を適用するため、重複が起きず、ファイルの内容が常に全体の正となります。
- C誤り。カウンターの値だけを0に戻すのは nft reset counters 等の操作です。flush ruleset はテーブルごとすべて削除します。
- D誤り。flush ruleset はルールセット全体を消去するため、iptables-nft が作成したテーブルも含めて削除されます。