Es scheint, als wäre es einfach, den Datenbankserver auf demselben Computer wie den Webserver auszuführen, aber gehen wir damit ein großes Sicherheitsrisiko ein?
Die Umgebung wird Windows 2008 Server, Postgresql (neueste Version, möglicherweise 9.0, wenn es herauskommt) und Apache 2 sein.
Antworten:
Nicht unbedingt.
Angenommen, Ihr Webserver wird kompromittiert, erhält der Angreifer weiterhin die Berechtigung, auf dieselben Datenbanken zuzugreifen, unabhängig davon, auf welchem Server er ausgeführt wird. Schließlich muss der Datenbankserver noch so konfiguriert werden, dass legitime Anforderungen vom Webserver zugelassen werden.
(Vorausgesetzt, vernünftige Sicherheitsmaßnahmen wie bei mysqld akzeptieren keine passwortlosen Root-Anmeldungen von localhost.)
Abgesehen davon möchten Sie möglicherweise immer noch einen separaten Datenbankserver ausführen. Der Grund dafür liegt in der Leistung, Skalierbarkeit usw.
quelle
Ich bin mit den Plakaten nicht einverstanden, die besagen, dass dies kein Sicherheitsbedenken ist, und hier ist der Grund:
quelle
Dies hängt wirklich vom Sicherheitsmodell Ihrer Web- und DB-Server (dh der Software) sowie vom Grad der Firewall / Zugriffskontrolle / IDP ab, die Sie für beide erzwingen würden, wenn sie sich auf separaten Servern befinden.
Wenn alles andere gleich ist, ist es wahrscheinlich besser, die beiden zu trennen. Praktisch jedoch, zumindest in einer LAMP-Umgebung, solange Sie privsep Apache verwenden (wenn Sie sich nicht sicher sind, machen Sie sich keine Sorgen) und nicht die Root-Anmeldung bei MySQL in Ihrer Webanwendung verwenden. und Sie haben tcp / 3306 nicht der Außenwelt ausgesetzt, Sie gewinnen nicht wirklich viel Sicherheit, indem Sie das eine oder andere auf ein anderes Stück Silizium bewegen. Sie erhalten jedoch Vorteile in Bezug auf Leistung und Debugfähigkeit.
Ihre Frage hat den Stil, der eine absolute Antwort zu erfordern scheint, aber ohne weitere Informationen (zumindest über die Betriebssystem- und Web- / DB-Server-Varianten, über die wir sprechen) ist es schwierig, eine informative zu geben.
quelle
Ich sehe kein großes zusätzliches Sicherheitsrisiko, wenn die Datenbank und die Webserver auf derselben Hardware installiert werden. Wenn der Webserver verletzt wird, sind die Daten trotzdem zugänglich. Sicherheit ist nicht der typische Grund für die Trennung von Ebenen.
In beiden Fällen möchten Sie sicherstellen, dass der Datenbankserver nicht standardmäßige Ports überwacht, nur auf Anforderungen vom Webserver reagiert und dass die Firewall nur http / s-Anforderungen an den Webserver und keine anderen Ports oder Adressen zulässt .
Trotzdem ist es eine gute Praxis, sie zu trennen. Jeder Server ist einfacher zu verwalten und zu konfigurieren, und Sie können Fehler, Probleme, Neuerstellungen, Leistungsprobleme usw. leichter beheben. Sie können also zwei virtuelle Server auf derselben Hardware in Betracht ziehen, die dann getrennt werden können, wenn Leistung oder Kapazität dies erfordern.
quelle
Ich würde nicht - aber das bin ich.
Es hängt davon ab, was sich vor Ihrer Box befindet (z. B. Firewalls, Load-Balancer usw.) und wie "eng" sie sind, wie die tatsächlichen Daten sind (dh die jetzt öffentlich verfügbaren Daten an einem Ende, die nationalen Geheimnisse am anderen Ende). , ob es Auswirkungen auf die Leistung beim Kombinieren gibt, die Stärke des Netzwerks zwischen beiden (dh Inter-Tier-Firewalls) und die Qualität der OS / App-Härtung, die angewendet wird.
Wenn Sie nicht erwarten, dass dieses System mit zu viel Last umgehen muss, können Sie in Betracht ziehen, das System in zwei separate VMs zu virtualisieren. eine pro Funktion - möglicherweise sogar mit einer dritten Firewall-VM, die nur Software enthält. Dies würde bedeuten, dass selbst wenn jemand Ihren Webserver geknackt hätte, er den Datenbankserver und, falls vorhanden, eine zwischengeschaltete Firewall-VM knacken müsste. Dies würde natürlich die Gesamtsystemleistung verringern, wäre jedoch zumindest bis zu einem gewissen Grad sicherer und könnte auch helfen, wenn Ihre Last jemals ein Zwei-Server-Design erfordert, da Sie einfach eine VM auf den zweiten Computer verschieben könnten. Das kostenlose ESXi-Produkt von VMWare kann dies ganz einfach tun, und es sind bereits kostenlose Firewall-VMs vorgepackt, die zur Implementierung bereit sind, wenn Sie dies wünschen.
quelle