8

私は Linux 名前空間で遊んでいますが、ユーザーが新しいネットワーク名前空間で (ユーザー名前空間を使用せずに) プロセスを実行したい場合、root になるか、そのCAP_SYS_ADMIN機能が必要であることに気付きました。

unshare(2)マンページには次のように書かれています。

CLONE_NEWNET (Linux 2.6.24 以降)

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

したがって、ネットワーク サンドボックスで pdf リーダーを実行する場合は、user-net-namespaces または特権ラッパーを使用する必要があります。

なんで?新しいプロセスは、インターフェイスのない新しいネットワーク名前空間に配置されるため、実際のネットワークから分離されますよね? 権限のないユーザー以外のネットワーク名前空間によって、どのような問題/セキュリティ上の脅威が発生しますか?

4

1 に答える 1

0

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

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

于 2016-12-03T22:10:30.253 に答える