2

同じ場所にあるデータ センターに 2 台の物理マシンがあり、それを最大限に活用したいと考えています。Docker、Weave を使用して安全性の高い Web アプリケーション (Tomcat、Mysql、Mongodb) を実行することを考えており、セキュリティに特に注意を払いたいと考えています。以下は私のアーキテクチャです。Docker のデプロイ経験のある人はフィードバックを提供できますか?

a) SSH を使用して両方の物理マシンに centos 6 OS を作成し、Shorewall をインストールします。Shorewall FW は ssh とポート 80,443 のみを制限し、80,443 は tomcat コンテナを実行している VM に転送します。この物理マシンには Docker がインストールされていません。

b) 両方の物理マシンに Virtualbox をインストールし、複数の VM を起動します。各 VM は物理マシンの SSH トンネル経由でアクセスできるため、追加のセキュリティ レイヤーが提供されます。

c) 各 VM に docker と weave ネットワークを構築し、ホストとして VM に weave ネットワークを構築します。

d) VM のみで起動されるすべての tomcat、mysql、mongodb コンテナ。

この構成の利点は、物理マシンと Docker が分離され、セキュリティの層が追加されることです。

これを構築する予定です。2 台のサーバーを利用するためのより安全で堅牢な方法について、問題や課題、または提案が予想されるかどうかを知りたいです。

ガイダンス、またはさらに読むためのリンクは大歓迎です。

ありがとうイギリス。

4

1 に答える 1

2

インフラストラクチャは良いスタートですが、スタートに過ぎません。

より安全にするために、これらのアプリケーションを適切に構成する必要があります (docker コンテナーで実行されているかどうかに関係なく)。たとえば、ヘッダー応答にアプリケーションの名前とそのバージョン (詳細については、Apache Tomcat 8 のセキュリティに関する考慮事項または「Apache Tomcat セキュリティの向上」を参照してください)

さらに、docker コンテナーの問題は、これらのコンテナー内でルートとして実行されているプロセスであり、カーネルに対して直接システム コールを作成します(デフォルトではスコープの制限がないため、すべてのシステム コールが許可されます)。
これは、docker 1.9 がPR 12648 (再マップされたコンテナー ルートとしてのユーザー名前空間のフェーズ 1 実装)問題 15187でやり始めたことです。

  • すべてのコンテナーには独自のユーザー名前空間があります (効果的に--net=hostまたはの使用を防ぎます--net=container:<id>)。
  • デーモン全体の設定によりroot、すべてのコンテナーのユーザーが再マップされます。
于 2015-12-05T13:02:18.247 に答える