LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問33
システム保護と監査/パケットフィルタリングの実装nftablesを使い、LAN(192.168.1.0/24)からインターネットへ出ていく通信の送信元アドレスを、外部インターフェース eth0 のアドレスに書き換えたい。natテーブルのpostroutingチェインにルールを追加するコマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)
- Anft add rule ip nat postrouting oifname eth0 ip saddr 192.168.1.0/24 masquerade
- Bnft add rule ip filter forward oifname eth0 ip saddr 192.168.1.0/24 masquerade
- Cnft add rule ip nat prerouting iifname eth0 ip saddr 192.168.1.0/24 masquerade
- Dnft add rule ip nat postrouting oifname eth0 ip saddr 192.168.1.0/24 dnat to 10.0.0.1
正解:A
解説
nftablesでソースNATを行うには、natタイプのチェインのpostroutingフックにmasqueradeを設定します。masqueradeは、パケットが出ていくインターフェースのアドレスに送信元を動的に書き換える動作です。masqueradeはnatタイプのチェインでのみ使用でき、filterタイプのチェインには記述できません。また、ソースNATは経路決定後(postrouting)に行うもので、preroutingフックはデスティネーションNAT(DNAT)用です。
選択肢ごとの解説
- A正しい。ip natテーブルのpostroutingチェインに、出力インターフェースがeth0で送信元が192.168.1.0/24のパケットに対してmasqueradeを適用するルールを追加します。
- B誤り。masqueradeはNATの動作であり、filterタイプのチェインには記述できません。filterのforwardチェインはパケットの転送可否を判定するためのものです。
- C誤り。preroutingフックは受信したパケットの宛先を書き換えるデスティネーションNAT(DNAT)に使います。送信元の書き換え(ソースNAT)にはpostroutingフックを使います。
- D誤り。dnatは宛先アドレスを書き換えるデスティネーションNATの動作であり、送信元アドレスの書き換え(ソースNAT)にはmasqueradeやsnatを使います。