LinuCレベル2 システムのセキュリティ 問25
システムのセキュリティ/iptablesやfirewalldによるパケットフィルタリングIPv4とIPv6の両方のアドレスを持つLinuxホストで、iptablesコマンドだけを使ってSSH以外の着信を拒否するルールを設定した。このときの説明として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムのセキュリティ」に対応。実際の試験問題ではありません)
- Aiptablesで設定したルールはIPv4とIPv6の両方に適用されるため、IPv6の着信も同じように拒否される
- BIPv6ではカーネルが着信を既定ですべて拒否するため、IPv6のルールを別に設定する必要はない
- CiptablesのルールはIPv4だけに適用されるため、IPv6にはip6tablesで同様のルールを別に設定する
- DIPv6の通信はステートフルな検査ができないため、ip6tablesではポート番号による制限ができない
正解:C
解説
iptablesはIPv4のパケットだけを対象にし、IPv6のパケットにはip6tablesで別にルールを設定します。RHEL 9のようにiptablesのバックエンドがnftablesの環境でも、iptablesはIPv4、ip6tablesはIPv6という区別は同じです。iptablesだけを設定すると、IPv6のアドレス宛ての着信は制限されないまま残るため注意が必要です。ip6tablesでもconntrackによるステートフルな検査やポート番号による制限が使えます。ルールの保存にはip6tables-save・ip6tables-restoreを使い、firewalldではIPv4とIPv6の両方に対するルールがまとめて管理されます。
選択肢ごとの解説
- A誤り。iptablesはIPv4だけを対象にします。IPv6にはip6tablesのルールが必要です。
- B誤り。カーネルが既定でIPv6の着信をすべて拒否することはありません。ルールを設定しなければ通信は通ります。
- C正しい。IPv6にはip6tablesで別にルールを設定します。
- D誤り。ip6tablesでも -m conntrack --ctstate によるステートフルな検査や、--dport によるポート番号の指定が使えます。