LinuCレベル2 システムのセキュリティ 問21
システムのセキュリティ/iptablesやfirewalldによるパケットフィルタリングiptablesで、外部からこのホストのTCP 80番ポートへ届いた接続を、同じホストのTCP 8080番ポートへ転送(ポートリダイレクト)したい。ルールとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムのセキュリティ」に対応。実際の試験問題ではありません)
- Aiptables -t filter -A INPUT -p tcp --dport 80 -j REDIRECT --to-ports 8080
- Biptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
- Ciptables -t nat -A POSTROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
- Diptables -t mangle -A FORWARD -p tcp --dport 80 -j REDIRECT --to-ports 8080
正解:B
解説
REDIRECTターゲットは、パケットの宛先をそのホスト自身の別のポートへ書き換えるもので、natテーブルのPREROUTINGチェーンとOUTPUTチェーンでだけ使えます。外部から届くパケットは、ルーティング判断の前に通るPREROUTINGで宛先を書き換える必要があります。同じホスト上のプロセスが自分自身へ接続する場合は、OUTPUTチェーンに同様のルールを追加します。別のホストへ転送する場合はDNATターゲットを使い、あわせてnet.ipv4.ip_forwardの有効化が必要になります。
選択肢ごとの解説
- A誤り。REDIRECTはnatテーブル専用のターゲットで、filterテーブルのINPUTチェーンでは使えません。
- B正しい。外部から届いたパケットの宛先ポートを、natテーブルのPREROUTINGチェーンでREDIRECTにより8080番へ書き換えます。
- C誤り。POSTROUTINGは送信直前に送信元を書き換える(SNATやMASQUERADE)ためのチェーンで、REDIRECTは使えません。
- D誤り。mangleテーブルはTOSやマークなどの書き換えに使うもので、REDIRECTによる宛先の書き換えはできません。