Frage

Was empfehlen Sie für die Einrichtung eines gemeinsamen Server mit PHP aus einer Sicherheit / Performance-Sicht auf?

  • Apache mod_php (Wie sichern Sie das? Andere als safe_mode, da es nicht in PHP6 sein wird)
  • Apache CGI + suexec
  • Lighttpd und laichen eine FastCGI pro Benutzer

LE: Ich bin nicht daran interessiert, eine bereits Bedienfeld bei der Verwendung als ich versuche, meine eigenen zu schreiben, so mag ich wissen, was ist der beste Weg, dies zu Setup selbst. Ich wurde mit Lighttpd und laichen einen fastcgi für jeden gehosteten Anwender, der den fcgi Prozess laufen unter seiner Zugangsdaten zu denken (es gibt ein Tutorial für diese auf lighttpd wiki). Dies wäre etwas sicherer, sondern würde diese Leistung (viele Benutzer / Speicher für jeden fcgi erforderlich) beeinflussen, so viel, dass es keine praktikable Lösung?

War es hilfreich?

Lösung

Persönlich, während Lighttpd OK ist, würde ich mit Nginx + FastCGI gehen, wenn Sie mit einer leichten Webserver + FastCGI Lösung am Ende gehen. Ich habe Benchmarks laufen und lesen Sie den gesamten Code, und Nginx ist eine Größenordnung schneller / stabiler unter Last -. Es ist sehr gut

Aber das ist nicht das, was Sie gefragt. Im Wesentlichen würde ich sagen, dass es ein Spektrum von Sicherheit / Skalierbarkeit vs. Geschwindigkeit Kompromissen in den drei Optionen, die Sie auflisten und Sie müssen nur entscheiden, wo Sie sein möchten. Wenn Sie ein Shared-Hosting-Provider mit nicht vertrauenswürdigen Benutzern die Installation von Gott-weiß-was PHP-Anwendungen sind, werden Sie mehr in Richtung Sicherheit lehnen, wenn diese unter mehreren vertrauenswürdigen Benutzern gemeinsam genutzt wird Sie in Richtung Performance anlehnen könnte. Hier sind meine Gedanken:

CGI + suexec: Dies ist bei weitem die sicherste und effizienteste / skalierbar für Sie in Bezug auf die Anzahl der Benutzer / Websites in einer Shared-Hosting-Umgebung. Prozesse werden gelaicht und Speicher verwendet nur als Anfragen kommen. Natürlich ist die CGI-Laich macht dies die langsamste für die Ausführungszeit der einzelnen Skripten. Wie viel langsamer? Nun möchten Sie Benchmark haben, aber in der Regel, wenn die Menschen laufen mit langer Laufzeit-Anwendungen (also so etwas wie Wordpress, die nur 0,25 bis 0,5 Sekunden dauert seine Libs zu laden und auf jede Anforderung initialisieren), dann ist die CGI-Laich Strafe beginnt hübsch aussehen vernachlässigbar im Kontext.

FastCGI: Das Problem hier (und es spielt keine Rolle, ob Ihr Webserver Apache, Lighttpd oder Nginx ist) ist es, herauszufinden, wie viele FCGI Kind Prozesse, die Sie lassen den Benutzer laufen lassen, weil jeder Prozess frisst Speicher auf die Größe der PHP-Interpreter gleich (in Linux ist alles davon natürlich nicht verdrahtet, aber ich schweife ab). Und im Gegensatz zu Mod_php werden diese Prozesse nicht von Benutzern gemeinsam genutzt, so dass Sie pro Benutzer zu beschränken haben. Zum Beispiel Caps Dreamhost dies bei 3 für ihre Kunden - jetzt, für einen Kunden eine Website ausgeführt wird, die Ausbrüche von mehr als 2-5 Seitenaufrufen einen zweiten, das ist eigentlich ziemlich schlecht, weil diese Anforderungen nur stapeln und die Website hängt bekommt. Nun Ich mag FastCGI mit einem leichten Webserver, wenn ich laufen Anwendungen auf eine gewidmet Server / Cluster, wann kann ich die App Hunderte von FCGI Kindern geben (alle mit Webserver privs natürlich à la Apache / prefork + mod_php). Aber ich glaube nicht, macht es Sinn, für Shared Hosting, wo Sie / cap die FCGI Kinder pro Benutzer zuzuordnen sind.

Apache + mod_php: am wenigsten sicher, da alles, was mit dem Webserver privs aktiv, aber Pool von Live PHP Prozessen geteilt wird, so ist es am besten auf der Leistung Ende ist. Aus Sicht eines Entwicklers, kann ich nicht php_safe Modus tolerieren, und aus einer Sysadmin Perspektive (mildert es gegen dumme Nutzer aber von einem tatsächlichen Angriff schützt nicht) es ist wirklich nur eine Illusion von Sicherheit, so würde ich eigentlich eher CGI, wenn mein andere Option safe_mode aufzunehmen.

Dreamhost tut Art eines Hybrid, tun sie Apache CGI + suexec standardmäßig, aber lassen Sie die (kleinen) Anteil ihrer mehr Nutzer, die anspruchsvolle elect FCGI zu tun, wenn sie es wollen, vorbehaltlich einer Kappe und ihre eigene Überwachung die Speichernutzung. Das spart eine Menge an Speicherressourcen im Vergleich zu ermöglichen FCGI für alle standardmäßig aktiviert.

Ein weiteres Problem, wenn Sie über handelsüblichem Shared Hosting reden wird, Apache ist mit vollem Funktionsumfang, hat Module für fast alles (einschließlich Sachen wie mod_security Sie vielleicht), und Ihre Benutzer mag es, weil alle ihre .htaccess configs wird usw. arbeiten -. Sie werden mit etwas anderem in der Unterstützung Kopfschmerzen führen, wenn sie gehen Drupal oder Wordpress oder was auch immer zu installieren (viel weniger ein Problem, wenn wir interne Benutzer reden)

Persönlich würde ich empfehlen, nur halten einfach zu starten und gehen mit CGI + suexec für beste Sicherheit und Skalierbarkeit. Wenn die Benutzer FCGI oder mod_php wollen, und Sie haben einen guten Kanal offen für Vorschläge / Kommunikation mit ihnen, werden sie danach fragen, aber entweder von diesen sind ein viel größeresKopfschmerzen für Sie mit nur marginalen Leistungsverbesserungen für sie, so mein Vorschlag einer von ihnen wäre zunächst aber reagieren nicht tun, wenn sie es schreien.

ich mit dem Wunsch, etwas zu tun „interessant“ wie Lighttpd + FCGI anstelle der Standard-Apache + CGI + suexec, sympathisiere, aber ich tief wirklich ich kann es nicht empfehlen.

Wenn Sie mehrere Server laufen lassen, können Sie CGI setzen auf einige und etwas anderes für den Power-User auf den anderen beenden. Und sicher sein cron grep alle www dirs für Dinge wie alt-ass Versionen von phpBB zu haben!

Andere Tipps

Ich empfehle Suhosin

Im Hinblick auf PHP + FastCGI und Sicherheit überprüfen dieses Blog-Post .

  

Die Herausforderung bei Sicherung eines gemeinsamen   Hosting-Server ist, wie die sichern   Website vor Angriffen sowohl von der   außen und von innen. PHP hat   integrierte Funktionen, zu helfen, aber   letztlich ist es die falsche Stelle   mit dem Problem.

     

habe ich schon geschrieben über eine Reihe von   Lösungen, die aber eine Option arbeiten   Ich habe immer und immer wieder gefragt zu   sehen ist PHP + FastCGI verwenden. Das   Glaube ist, dass FastCGI verwendet wird   überwinden die Leistungsprobleme von   Apache suexec oder mod_suphp, weil   FastCGI Prozesse bestehen zwischen Seite   Ansichten.

     

Aber bevor wir auf die Leistung schauen können,   Die erste Frage lautet: Wie genau tun   wir bekommen PHP und FastCGI läuft als   verschiedene Benutzer auf dem einem Web-Server   in erster Linie?

Ich habe mit InterWorx für etwa ein Jahr jetzt und waren sehr beeindruckt. Es unterhält einen LAMP-Server mit chroots Ihre Skripte für die Sicherheit.

Ich habe auch Ensim verwendet, haben aber nicht so freundlich gefunden, schnell und es doesn‘ t haben so viele Funktionen. Außerdem kostet es viel mehr.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top