2016-09-16 6 views
5

私はLinuxネームスペースで遊んでいますが、ユーザが(ネームスペースを使わずに)新しいネットワークネームスペースでプロセスを実行したい場合、ルートにするか、CAP_SYS_ADMINの能力が必要です。なぜ非共有(CLONE_NEWNET)にCAP_SYS_ADMINが必要ですか?

unshare(2)マンページは言う:(Linuxの2.6.24以降)

CLONE_NEWNETが

このフラグはクローン(2)CLONE_NEWNETフラグと同じ効果を有します。 呼び出し元のプロセスが、既存のプロセスと共有されていない新しいネットワーク名前空間に移動されるように、ネットワーク名前空間の共有を解除します。 CLONE_NEWNETの使用には、CAP_SYS_ADMIN機能が必要です。だから、

私がネットワーク上のサンドボックス内のPDFリーダーを実行したい場合は、私は、ユーザーがネットの名前空間または一部の特権ラッパーを使用する必要があります。

なぜですか?新しいプロセスは、インタフェースのない新しいネームスペースに配置されるため、実際のネットワークから分離されます。どのような問題やセキュリティ上の脅威が、非特権の非ユーザネットワークネームスペースを増やすのでしょうか?

答えて

0

ネットワークネームスペースを作成すると、setuidフラグを持つバイナリまたは特権のあるバイナリの実行環境を操作できます。プロセスがユーザー名前空間に含まれていない権限を取得できないため、ユーザーの名前空間はこの可能性を排除します。

一般に、特権プロセスがネットワークにアクセスすることを拒否することによってセキュリティ上の脆弱性が発生しないことはわかりません。したがって、カーネルは、操作は特権があるとみなし、通常のユーザーに対して特権ユーティリティが提供されるかどうかを判断するのはシステムポリシーに従います。

関連する問題