Chroot-Jail von Nginx und PHP

Chroot-Jail von Nginx und PHP

Ich hoste mehrere Websites auf einem VPS und möchte für jede Website ein Chroot-Verzeichnis einrichten, z. B. /chroot/website1 /chroot/website2

Ich verwende makejail, ein High-Level-Tool, um die Jails zu erstellen und die Bibliotheken und Abhängigkeiten zu kopieren. Kinderleicht.

Jede Website benötigt nginx, php und mysql. Für php verwende ich php5-fpm, das eigentlich chroot per Konfiguration unterstützt, ich verwende es jedoch nicht (vielleicht sollte ich das?)

Meine Frage ist, welcher der folgenden drei Ansätze der bessere ist:

1) Jede Website hat ihre eigene separate Instanz von Nginx, PHP und MySQL. Der Nachteil ist, dass jeder Webserver + PHP auf einem anderen Port lauschen muss. Ich brauche außerdem einen „Master“-Nginx-Webserver davor, der Reverse-Proxying zu den dahinterliegenden Chroot-Servern betreibt. Das ist wahrscheinlich am sichersten, aber auch am fortschrittlichsten.

2) Ich erstelle keine Chroot-Jails manuell. Ich richte einen Nginx-Webserver ein, der PHP-Anfragen an php-fpm über verschiedene Ports weiterleitet. Ich kann mehrere php-fpm-Konfigurationen haben, jede mit ihrem eigenen Chroot-Ordner. Das ist ziemlich handhabbar – allerdings wird nur PHP chrootet. Nicht der eigentliche Webserver. Ist das sicher genug? Ich habe diese Option auch ausprobiert und es scheint, dass ich TCP statt Sockets verwenden muss, um eine Verbindung zu MySQL herzustellen.

3) Sag du es mir ;)

Ich bin ziemlich neu im Chroot-Jailing, also korrigieren Sie mich bitte, wenn meine Annahmen falsch sind. Ich habe alle Tutorials gelesen, die ich finden konnte, finde jedoch, dass es auf dem Markt für Chroot-Anleitungen sehr wenig gibt. Jede Hilfe oder Anregung ist sehr willkommen!

Antwort1

Ich habe mich letztendlich für Option 2 entschieden. Wenn ich TCP (127.0.0.1) statt Sockets (localhost) verwende, funktioniert das meiste sofort.

Um einige Dinge muss man sich kümmern: Sendmail und externe Dienste. Für Sendmail können Sie mini_sendmail verwenden. Ziemlich einfach einzurichten, wenn Sie makejail (Debian/Ubuntu-Paket) verwenden und diesem Tutorial folgen: http://www.cyberciti.biz/tips/howto-setup-sendmail-php-mail-chrooted-apache-lighttpd.html

verwandte Informationen