LinuCレベル2 システムのセキュリティ 問36
システムのセキュリティ/セキュリティ業務新しいアプリケーションをTCP 8080番で公開する予定のサーバーがある。アプリケーションを導入する前に、クライアントから8080番への接続が途中の機器やサーバーのファイアウォールで遮断されずに届くかを確かめたい。そのためにサーバー側で実行し、8080番で一時的に接続を待ち受けさせるコマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル2の出題範囲「システムのセキュリティ」に対応。実際の試験問題ではありません)
- Ass -ltn 'sport = :8080'
- Bncat -l 8080
- Cfirewall-cmd --query-port=8080/tcp
- Dncat 127.0.0.1 8080
正解:B
解説
ncat(Nmapプロジェクトによるnetcatの実装。RHEL系ではnmap-ncatパッケージ)の-lは、指定したポートで接続を待ち受けるモードです。サーバーで ncat -l 8080 を実行しておき、クライアントから ncat <サーバーのアドレス> 8080 等で接続して、入力した文字が相手側に表示されれば、経路とファイアウォールを通って8080番に届くことを確かめられます。接続できなければ、途中の機器かサーバーのファイアウォール(firewalldやiptables)で遮断されていると絞り込めます。netcatには複数の実装があり、待ち受けのオプションの書き方が異なることがあるため、使っている実装のman pageで確認します。
選択肢ごとの解説
- A誤り。ssの-lは既に待ち受けているソケットを表示するだけで、待ち受けは作りません。アプリケーションが未導入なら何も表示されません。
- B正しい。ncat -l 8080で8080番の待ち受けを一時的に作り、クライアントからの接続が届くかを確かめられます。
- C誤り。firewalldの設定で8080/tcpが許可されているかを答えるだけで、待ち受けは作らず、途中の機器で遮断されていないかも分かりません。
- D誤り。これはサーバー自身の8080番へ接続する(クライアントとして動く)指定で、待ち受けは作りません。ループバック経由なので外部からの経路も確かめられません。