LinuCレベル3 セキュリティスペシャリスト システム保護と監査 問3
システム保護と監査/カーネルセキュリティとシステムリソース保護コンテナとして動作しているPID 1234のプロセスと同じネットワーク名前空間に入り、そのネットワーク設定を確認したい。コマンドとして適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「システム保護と監査」に対応。実際の試験問題ではありません)
- Ansenter -t 1234 -n ip addr
- Bunshare -n ip addr
- Cip netns exec 1234 ip addr
- Dchroot /proc/1234/root ip addr
正解:A
解説
nsenter は既存のプロセスが属する名前空間に入ってプログラムを実行するコマンドで、-t(--target)で対象のPIDを、-n でネットワーク名前空間を指定します。-m(マウント)や -p(PID)等を組み合わせれば、複数の名前空間へ同時に入ることもできます。対して unshare は新しい名前空間を作ってその中でプログラムを実行するコマンドで、既存の名前空間に入る用途には使いません。ip netns exec は /run/netns に名前を付けて登録された名前空間を名前で指定するもので、PIDを直接渡すことはできません。
選択肢ごとの解説
- A正しい。nsenter -t でPID 1234を対象にし、-n でそのネットワーク名前空間に入って ip addr を実行します。
- B誤り。unshare -n は新しい空のネットワーク名前空間を作ってコマンドを実行するため、表示されるのはループバックインターフェースだけです。PID 1234のプロセスが属する既存の名前空間には入れません。
- C誤り。ip netns exec は ip netns add 等で名前を付けて登録された名前空間を名前で指定します。PIDを指定しても対象の名前空間には入れません。
- D誤り。chroot はルートディレクトリを変更するだけで、ネットワーク名前空間はホストのままです。表示されるのはホスト側のネットワーク設定です。