2

Dockerコンテナ間のサービスポート管理を簡素化するため、含まれているHTTPサービスがそれぞれのコンテナのIPアドレスのHTTPのデフォルトのTCPポート80をリッスンできるようにします。コンテナがポート80でリッスンできるようにする副作用

1025未満のポート番号を聞くことは、古典的には、特別な特権を持つユーザ、たとえばrootに制限されています。この理由は、私が理解する限り、マルチユーザーシステム上の特権のないユーザーが、マシン全体に対して権限のあるHTTPサービスとして動作することを禁止するためです。

新しいLinuxバージョンでは、Linuxカーネル機能CAP_NET_BIND_SERVICEを適用することで、特定の実行可能ファイルにこれを許可することもできます。これをDockerコンテナで使用するには、Dockerクライアントの--add-capフラグまたはDocker-Compose cap_addセクションのいずれかを使用して、Dockerコンテナ自体にこの機能を適用する必要があるようです。

理論的には、Linuxカーネルのネームスペースにより、コンテナ内のプロセスが排他的な独自のIPアドレスにのみバインドできるため、このポート番号制限の理由は時代遅れです。

これを行うことについて深刻な注意点がある場合は、私の質問は今あるでしょう。これは何ですか、あるいはこれが私にとって考えられないようなセキュリティ上の問題になることはありますか?あるいはこれを行うことに関して他に何か問題がありますか?

答えて

1

これには問題はありません。

"cap add"を使用してセキュリティホールを表示させることはできますが、ポート80を使用することは問題ではありません。これはあなたのソフトウェアがリッスンするTCP/IPポートであり、セキュリティの観点からは他の任意のポート番号と変わることはありません。

0

当面は他のポートにバインドすることをお勧めします。 1つは、コンテナが作成されたときに常に別のポートにそれらを転送します。セキュリティーを混乱させ、不要な特権をコンテナに残すことは、特定のポートに内部的にバインドするのはあまりにも面倒です。

+0

どのような基準でこれをお勧めしますか?これによって開かれた攻撃シナリオはありますか? – aef

関連する問題