LinuCレベル2 システムのセキュリティ 問33
システムのセキュリティ/iptablesやfirewalldによるパケットフィルタリングINPUTチェインのポリシーをDROPにし、SSH(TCP 22番)の着信だけを許可した。OUTPUTチェインはすべて許可している。すると、このホスト自身が外部へ接続するDNSの問い合わせやパッケージの取得が失敗するようになった。INPUTチェインへ追加するルールとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムのセキュリティ」に対応。実際の試験問題ではありません)
- Aiptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
- Biptables -A INPUT -m conntrack --ctstate NEW,UNTRACKED -j ACCEPT
- Ciptables -I INPUT 1 -m conntrack --ctstate INVALID -j ACCEPT
- Diptables -A OUTPUT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
正解:A
解説
ホスト自身が始めた通信でも、相手からの応答パケットはINPUTチェインを通るため、ポリシーがDROPだと応答が捨てられます。conntrackモジュールの ESTABLISHED は既に確立された接続に属するパケット、RELATED はFTPのデータ接続やICMPのエラーのように既存の接続に関連するパケットを表します。これらを許可すれば、自分から始めた通信の応答は受け取りつつ、外部から新しく始まる接続は許可したものだけに限定できます。このルールは、INPUTチェインの先頭付近に置くのが一般的です。
選択肢ごとの解説
- A正しい。確立済みの接続と関連する接続のパケットを許可し、自分から始めた通信の応答を受け取れるようにします。
- B誤り。NEWは新しい接続を始めるパケット、UNTRACKEDはrawテーブルで追跡の対象外にしたパケットで、外部からの新規接続まで受け付けてしまいます。
- C誤り。INVALIDはどの接続にも属さない不正なパケットで、先頭に挿入して許可するのではなく破棄する対象です。
- D誤り。OUTPUTチェインは既にすべて許可されており、問題は応答パケットがINPUTチェインで捨てられていることです。