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