データベースサーバーをWebサーバーと同じマシンで実行するのは簡単なことのように思えますが、これを行うことでセキュリティ上の大きなリスクを冒していますか?
環境は、Windows 2008サーバー、Postgresql(最新バージョン、リリース時には9.0になる可能性があります)およびApache2になります。
必ずしも。
Webサーバーが危険にさらされたとすると、攻撃者は、どのサーバーで実行されていても、同じデータベースにアクセスするための資格情報を取得します。結局のところ、データベースサーバーは、Webサーバーからの正当な要求を許可するように構成する必要があります。
(mysqldがlocalhostからのパスワードなしのrootログインを受け入れないなどの賢明なセキュリティ対策を想定しています。)
そうは言っても、別のデータベースサーバーを実行することをお勧めします。その理由は、パフォーマンス、スケーラビリティなどに関連しています。
これはセキュリティ上の懸念事項ではないと述べているポスターには同意しません。理由は次のとおりです。
これは、WebサーバーとDBサーバー(つまり、ソフトウェア)のセキュリティモデルと、2つのサーバーが別々のサーバーにある場合に適用するファイアウォール/アクセス制御/ IDPの程度によって異なります。
他のすべてが等しい場合、おそらく2つを分離する方がよい場合です。ただし、実際には、少なくともLAMP環境では、privsep Apacheを使用していて(確信が持てない場合は心配しないでください)、WebアプリでMySQLへのルートログインを使用していない限り、そして、tcp/3306を外の世界に公開していないので、移動しても実際にはセキュリティが得られませんmuchどちらか一方を別のシリコン片に置きます。ただし、パフォーマンスとデバッグ機能の利点は得られます。
あなたの質問は絶対的な答えを必要としているように見えるスタイルですが、より多くの情報(少なくとも、私たちが話しているOSとWeb/DBサーバーのフレーバー)がなければ、有益なものを与えることさえ困難です。
私はしませんが、それは私です。
それはあなたの箱の前にあるもの(すなわちファイアウォール、ロードバランサーなど)とそれらがどれほど「タイト」であるか、実際のデータが何であるか(すなわち現在-一方の端で公に利用可能なデータに影響を与え、もう一方の端で国の秘密)に依存します、それらの組み合わせにパフォーマンスへの影響があるかどうか、両方の間のネットワークの強度(つまり、階層間ファイアウォール)、および適用されるOS /アプリ強化の品質。
このシステムが過度の負荷を処理する必要がないことを期待している場合は、システムを2つの別々のVMに仮想化することを検討できます。機能ごとに1つ-おそらく3番目のソフトウェアのみのファイアウォールVMそれらの間にさえあります。これは、誰かがWebサーバーをクラックしたとしても、データベースサーバーをクラックする必要があることを意味します。中間ファイアウォールVMが含まれています。もちろん、これによりシステム全体のパフォーマンスが低下しますが、少なくともある程度は安全であり、1つを移動するだけで2台のサーバー設計が必要になる場合にも役立ちますVM 2番目のマシンに移動します。VMWareの無料のESXi製品は、これをすべて非常に簡単に実行できます。必要に応じて、実装の準備ができた無料のファイアウォールVMがすでにパッケージ化されています。
データベースとWebサーバーを同じハードウェアに配置することによる追加のセキュリティリスクはあまり見られません。 Webサーバーが侵害された場合でも、データにアクセスできます。セキュリティは、階層を分離する一般的な理由ではありません。
いずれの場合も、データベースサーバーが非標準ポートでリッスンし、Webサーバーからの要求にのみ応答し、ファイアウォールがWebサーバーへのhttp/s要求のみを許可し、他のポートやアドレスを許可しないことを確認する必要があります。 。
それでも、それらを分離することは良い習慣です..各サーバーは管理と構成が簡単であり、障害、問題、再構築、パフォーマンスの問題などに簡単に対処できます。したがって、同じハードウェア上の2つの仮想サーバーを検討することができます。これらの仮想サーバーは、パフォーマンスまたは容量が必要なときに分離できます。