web-dev-qa-db-ja.com

データベースサーバーを安全なネットワークトポロジに配置するためのベストプラクティスは何ですか

私は古典的なDMZアーキテクチャを持っています:

enter image description here

私のウェブサーバーはDMZに配置されています。 Webサーバーはデータベースサーバーと通信する必要があります。このデータベースサーバーには機密データが含まれているため、ネットワークの最も重要なコンポーネントです。

DBサーバーはどこに配置する必要がありますか。その理由は何ですか。 2番目のファイアウォールを追加して、別のDMZを作成する必要がありますか?

20
lisa17
  • 最適な配置は、データベースサーバーを独自の信頼済みゾーンに配置することです。
  • それらはWebサーバーからのインバウンド接続のみを許可する必要があり、それはファイアウォールとマシンで実施する必要があります。現実は通常、さらにいくつかのマシン(db adminなど)を指示します。もちろん、必要に応じて現実に従いましょう。
  • それらのソフトウェアを更新している場合にのみ、発信接続を行う必要があります。
26
Jeff Ferland

ジェフファーランドと同意します。データベースサーバーは単独で使用する必要があります。レプリケーションとバックアップのためのクリーンなネットワークが必要です。

失礼ですASCIIアート、合理的な理想の概要:

      [internet]
          |
    outer-firewall--- [proxy-zone]
          |      
         ----- [app-zone]
          |
    inner-firewall 
[lan]--/         \-- [database-zone]
  1. プロキシゾーンでリバースプロキシApache + mod_security/varnish/nginx/WAF/whateverを実行します。必要に応じて、ここにも負荷分散/フェイルオーバーを追加します。必要に応じて、発信接続用のプロキシ/リレーサーバー(DNS、SMTP、HTTPプロキシ)。
  2. アプリケーションロジックをWebサーバー(Java/PHP/ASP)で実行するときは、アプリケーションサーバーと呼びます。
  3. スケーリングする必要がある場合は、水平方向にスケーリングできます。ロードバランサーを使用すると、これを簡単に行うことができます。静的な非認証コンテンツをフロントエンドプロキシに複製することも検討できます。
  4. 1つ以上のゾーン(IDS、管理、バックアップ、リモートアクセス、送信プロキシ)を追加することができます

あなたは軽減しようとしているので、

  • ゾーン間通信は、サービスと監視の目的に必要な最小限に制限する必要があります。
  • リバースプロキシは、インターネットからの信頼できない接続を受け入れ、アプリケーションサーバー上のサービスにのみ接続できます。トラフィックによってゾーンを分類する場合は、HTTPSの終了を慎重に検討する必要があり、アプリサーバーへの新しいHTTPs接続を作成する場合は、.
  • アプリケーションゾーンは、プロキシからの準信頼接続を受け入れ、データベースにのみ接続できます。アプリケーションサーバーがインターネットと直接通信していないことがわかっている場合は、アプリケーションサーバーをもう少し信頼できます。
  • データベースサーバーはアプリケーションサーバーからの接続のみを受け入れます。データベースゾーンは「最もクリーンな」ネットワークである必要があります
  • 外側のファイアウォールと内側のファイアウォールに異なるファイアウォール(ベンダー/製品)を使用することを検討してください
  • 必要なoutboundサービス(DNS、SMTP、またはパッチ/アップデート)の場合、これらは別個のサーバー(たとえば、proxy-zoneまたはoutbound-proxy-zone)を経由する必要があります。
  • 同じことが、送信CC検証HTTPS接続にも当てはまります。 (もし運が悪ければ、検証のためにいくつかのベンダー提供のブラックボックスを用意することもできますが、それも専用ゾーンで行う必要があります。
  • プロキシゾーンでのみパブリックIPアドレスを使用し、他の場所ではプライベートアドレスを使用します。プロキシゾーン外のサーバーには、パブリックIP、NAT、またはインターネットへのデフォルトルートは必要ありません。

ゾーンを分離すると、IDSの作業が簡単になり、ロギングの効率が上がります。リソースがある場合は、サーバーごとに管理ゾーンの個別の管理NICを追加します(可能な場合は保護されたポート)。

実際には、「理想的なネットワーク」を単一のファイアウォールとVLANに圧縮することになるかもしれませんが、上記を念頭に置いて今すぐオプションを検討すると、将来、つまり友好的な近所からの次の訪問の直後に移行する方が簡単になるはずです。 PCI-DSS監査人;-)

21
mr.spuratic

以下は、DMZ architecutreの一般的な設定です。

インターネット

^

ファイアウォール1

^

DMZ(ここでdmzサーバーをホストして、ファイアウォールを通過する特定のポートのみを許可する)

^

ファイアウォール2

^

データベースネットワーク(firewall2からこのネットワークへの特定のポートとプロトコルのみを許可する)

データベースにはクレジットカード(機密)データが含まれているため、ファイアウォール2の内側でも、データベースネットワークを企業ネットワークおよびユーザーネットワークから分離する必要があります。多くの場合、すべてのユーザーがプローブしてアクセスできるように、社内ネットワークで会社の王冠が広く開かれています。さらにステップを進めると、データベース管理者が存在する可能性がありますVLANこのシステム内のシステムのみを許可するVLANアクセスする必要があるアプリケーションは別として、データベースにアクセスする許可DMZ)から。

お役に立てれば。

1
fixulate

3層アーキテクチャは、最も安全でスケーラブルなソリューションです。クライアントトラフィックが増加すると、パフォーマンスを確保するために必要な数の中間層を追加できます。中間層がデータベース層を保護しているため、3層アーキテクチャーの方が安全です。データベース層を直接アクセスから保護し、信頼できるゾーンに配置する必要があり、アプリケーションサーバーからの接続のみを受け入れる必要があります。

3 Tier Architecture

1
Ali Ahmad

PCI-DSSに準拠する必要があるので、各インターネット接続とDMZと内部ネットワークとの間にファイアウォールがあることを確認する必要があります。自己評価アンケートにいくつかの良い指針があります。

また、Wintelボックスがドメインのメンバーである場合は、データベースサーバーを作成しないでください。

0
Matthew

私は、DBサーバーが単なるファイアウォール以上のものによって保護されているアーキテクチャを好みます。つまり、私はWebサーバーが危険にさらされていると想定しますが、任意のDB操作を実行できる代わりに、中間サーバーから非常に限られたデータしかフェッチできません。 DB愛好家は、どのDBにも十分な権限チェックが組み込まれていると主張します。しかし、まあ、深層防御。

0
markhahn