Linuxがユーザーレベルのネットワークポート権限を許可しないのはなぜですか? [閉鎖]

Linuxがユーザーレベルのネットワークポート権限を許可しないのはなぜですか? [閉鎖]

場合によっては、Linuxでネットワークポートアクセスに対するユーザーレベルの権限を設定する方法を検索するのに、結果はかなり退屈です。たとえば、ポート5080でリッスンする重要なプロセスを実行しているコンピュータがある場合は、他の通常の特権プロセスと同様に、信頼できる特定のユーザーセットのみがそのポートにアクセスできるようにする方法があると思います。ファイルシステム機関と同じです。

ただし、高ポートはすべてのユーザーが使用できるのに対し、低ポートはルートのみを使用でき、authbindやiptables転送などの粗雑なハッカーだけが他のユーザーに低ポートを使用できるようにすることができます。これは非常に奇妙な状況のようです。それで、なぜこのように設計されているのか、人々がこれを変える必要性を感じないのではないかと思います。

ベストアンサー1

Linuxはネットワークネームスペースをサポートしています。さまざまなプロセスがさまざまなネットワークインターフェイスのセットを表示できるようにすることができます。これは広範なトピックです。

コンピュータ内で特定のユーザーだけがアクセスできる通信ポートが必要な場合は、ファイルシステムスペースに許可された名前を持つ従来のUnixソケットを使用できます。 LinuxはAF_UNIXソケットに対する読み取り/書き込み権限を尊重します。

マシンが他のマシンからの外部TCPまたはUDP要求をポート5080で受信している場合、私たちは実際にこれについて話すことはできません。ユーザーこれ以上権限がありません。認証、暗号化、整合性/スプーフィング防止/サービス拒否防止など、5080を超えるプロトコルにセキュリティを構築する必要があります。

おすすめ記事