データベースサーバーとWebサーバーを同じマシン上に置くことは危険ですか?


8

Webサーバーと同じマシンでデータベースサーバーを実行するのは簡単なようですが、これを行うことでセキュリティ上の大きなリスクを負っていますか?

環境は、Windows 2008サーバー、Postgresql(最新バージョン、リリース時には9.0)、およびApache 2になります。


場合によります。検討している特定のシナリオについて詳しく教えてください。
K.ブライアンケリー

回答:


7

必ずしも。

Webサーバーが危険にさらされていると仮定すると、攻撃者は、どのサーバーで実行されていても、同じデータベースにアクセスするための資格情報を取得します。結局のところ、データベースサーバーは、Webサーバーからの正当な要求を許可するように構成する必要があります。

(mysqldのような賢明なセキュリティ対策がlocalhostからのパスワードなしのrootログインを受け付けないことを想定しています。)

とはいえ、別のデータベースサーバーを実行することもできます。その理由は、パフォーマンス、スケーラビリティなどに関連しています。


3
より大きな問題は、同じマシンで両方を実行した場合のパフォーマンスへの影響であることに同意します。
ChrisF 2010

5

これはセキュリティ上の問題ではないというポスターには同意しません。その理由は次のとおりです。

  • 前面のサービスは、可能な限り最小の攻撃面を持つ必要があります。これが、リバースプロキシとファイアウォールを使用する主な理由であり、不要なサービスとプログラムを、それらの動作を必要としないサーバーから遠ざけるためです。このため、セキュリティ強化パスの最も一般的なターゲットはWebサーバーです。
  • あなたのウェブサーバーはあなたのデータベースシステムへの神の権利を持っていてはいけません。したがって、Webサーバーが危険にさらされても、データベースサーバーは危険にさらされません。手始めに、Webサーバーがデータベースにアクセスするために使用するアカウントには、SQLボックスに対するローカル管理者権限を持たせないでください。その権限は、データベース権限のみに限定する必要があります。次に、これらのSQL権限内では、最小権限の原則の下で動作する必要があります。たとえば、Webボックスがインスタンス内で新しいデータベースをインスタンス化できないようにする必要があります。理想的には、Webボックスには、テーブルをドロップしたり、絶対に必要ではないテーブルから行を削除したりする機能はありません。したがって、適切に構成された2層セットアップで妥協が発生した場合、SQL資格情報を使用する攻撃者の影響の範囲は限定されます。

1
2ボックスソリューションの方が安全ではないと言っている人はいないと思います。しかし、問題は、そのリスクがその問題を引用すると「大きな」ものであるかどうかでした。答えは明らかに状況によって異なります。たとえば、インターネットに接続する銀行サイトを1台のマシンで実行することはしません。しかし、適切にロックダウンされたWebサーバーは、一度侵害されると、侵害される前と比べてデータベースサーバーにアクセスできるようになるはずです。その原則は、ソリューションが2台のマシンにあるか1台にあるかに依存しません。それが真実でない場合は、システムを再構築するときです。
BMDan 2010

私はあなたの論理に従っていません。Webサーバーを危険にさらし、そのマシンへのルートを取得すると、そのマシン上にあるものはすべて手に入ります。すべてのデータを含むデータベース全体が含まれる場合、すべてが危険にさらされます。ただし、2つの別個のサーバーがある場合、Webサーバーをある程度完全に危険にさらすと、Webサーバー自体にアクセス可能なデータへのデータレベルのアクセスしか得られません。
Chris Thorpe、2010

3

実際には、WebサーバーとDBサーバー(つまり、ソフトウェア)のセキュリティモデル、および2つのサーバーが別々のサーバー上にある場合に実行するファイアウォール/アクセス制御/ IDPの程度に依存します。

他のすべてが等しい場合、おそらく 2つを分離する方が良いケースです。ただし、実際には、少なくともLAMP環境では、privsep Apacheを使用していて(わからない場合は、心配しないでください)、WebアプリケーションでMySQLへのルートログインを使用していない限り、また、tcp / 3306を外部に公開していないので、どちらかを別のシリコンに移動しても、セキュリティはそれほど向上していません。ただし、パフォーマンスとデバッグ機能の利点は得られます。

あなたの質問は絶対的な答えを必要とするように見えるスタイルですが、詳細情報(少なくとも、私たちが話しているOSとWeb / DBサーバーのフレーバー)がなければ、有益なものを与えることさえ困難です。


1
+1基本的なセキュリティとベストプラクティスは、ほとんどのデータに十分です。
クリスS

実行する予定です:Windows Server 2008とPostgresql 8.4(またはリリースされると9.0)、Apache 2
CLJ

0

データベースとWebサーバーを同じハードウェア上に置くことによるセキュリティリスクの増加はあまり見られません。Webサーバーが侵害された場合でも、データにアクセスできます。セキュリティは、層を分離する一般的な理由ではありません。

どちらの場合でも、データベースサーバーが非標準のポートでリッスンし、Webサーバーからの要求にのみ応答し、ファイアウォールがWebサーバーへのhttp / s要求のみを許可し、他のポートやアドレスは許可しないことを確認したい場合。

それでも、それらを分離することは良い習慣です。各サーバーの管理と構成がより簡単になり、障害、問題、再構築、パフォーマンスの問題などをより簡単に進めることができます。そのため、同じハードウェア上の2つの仮想サーバーを検討する場合があります。これらは、パフォーマンスまたは容量で必要な場合に分離できます。


0

私はそうしません-しかし、それは私です。

それは、あなたの箱の前にあるもの(すなわち、ファイアウォール、ロードバランサーなど)とそれらがどれほど「タイト」であるか、実際のデータが何であるかに依存します(つまり、現在、一方の端で公的に利用可能なデータ、もう一方の国家機密) 、それらを組み合わせることにパフォーマンスの影響があるかどうか、それらの間のネットワークの強さ(つまり、層間ファイアウォール)、および適用されるOS /アプリの強化の品質。

このシステムが過度の負荷に対処する必要があると思わない場合は、システムを2つの別個のVMに仮想化することを検討してください。機能ごとに1つ-おそらくそれらの間に3番目のソフトウェアのみのファイアウォールVMがあります。これは、誰かがWebサーバーをクラックした場合でも、データベースサーバーをクラックする必要があり、含まれている場合は、中間ファイアウォールVMをクラックする必要があることを意味します。もちろん、これはシステム全体のパフォーマンスを低下させますが、少なくともある程度は安全であり、1台のVMを2台目のマシンに移動するだけで2サーバー設計が必要になるまで負荷が増大した場合にも役立ちます。VMWareの無料のESXi製品は、これを非常に簡単に行うことができ、必要に応じて、実装用に事前にパッケージ化された無料のファイアウォールVMがすでに用意されています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.