Härten vom LAMP Unterbau für ISPconfig

fw114

Member
Hallo zusammen,

grundsätzlich ist mir klar wie das geht. Die Frage die ich stellen möchte ist, ob dies schon einmal jemand maximal gemacht hat,
bis an die Grenze das ISPConfig noch sinnvoll laufen kann und die auch noch am besten in ein HowTo geschrieben hat wo diese Grenzen sind.

Besten Dank.
 

pilgrims

Member
Maximal/Extrem gehärtet bedeutet doch u.a. nur noch Port 22 und 443 bleiben offen.
Aber ISPConfig braucht schon einige Ports mehr: Port 8080 (ISPConfig-Webinterface), Port 25, 465, 587, 110, 143, 993, 995 für Mail, für TCP/UDP Port 53 und für FTP Port 21.

Dann gibt es noch neben dem Thema der sudo-Policies, chmod 700 auf Systemverzeichnisse, noch die PHP-Restriktionen, die man machen müsste. Aber ISPConfig braucht bestimmt globale Funktionen wie exec(), passthru(), shell_exec() oder popen().

Linux-Kernel mit Grsecurity / PaX härten. Aber dann könnten u.a. Speicherzugriffe gestört werden.

Mir fällt noch ein: /var und /tmp müssten auch gesichert (noexec) werden, so dass dort nicht geschrieben und ausgeführt werden dürfte. Ich weiß nicht, welche erwünschten Installer dann noch out-of-the-box laufen werden.

Ich hatte es früh das extreme-hardening irgendwann sein gelassen und mich auf das beschränkt, was in der perfect server-Anleitung aufgeführt wurde. Das ist auch eine solide Grundlage, von der man ausgehen kann und immer nochmal nachjustieren kann.

Nachrag:
Bei dem Thema FTP habe ich schon öfter überlegt, eine zentrale Web-FTP-Lösung den Kunden anzubieten und dann FTP auf den localhost zu beschränken. Aber da hatte ich noch keine Zeit das mal auszuprobieren.
 

Till

Administrator
Aber ISPConfig braucht bestimmt globale Funktionen wie exec(), passthru(), shell_exec() oder popen().
Ja, wobei Du in Debian und Ubuntu getrennte php.ini-Dateien für CLI und PHP-FPM hast. Und Prozesse ausführen und managen brauchst Du nur in der CLI. Oder Du beschränkst die Funktionen nur für die Webseite über das custom php.ini Feld.

Was Du noch machen kannst, ist php-fpm Chroot in den Webseiten einschalten, aber Dir muss klar sein, dass MySQL connects auf Localhost dann nicht mehr gehen, da localhost ein Socket außerhalb des Chroots ist. Man muss stattdessen 127.0.0.1 nehmen in den Settings von z.B. WordPress.
 

Werbung

Top