Plesk 9 – PHP Security mit Safe_mode und Fast-Cgi

Mit der neuen Version 9 von Parallels Plesk lang erhofften sich viele endlich PHP als Fast-CGI und CGI Modul einbinden zu können und damit erhöhten Schutz für ihrem Webserver zu bekommen. Dank CGI läuft der Apache nun unter den jeweiligen Userrechten des Vhosts und streicht damit das Problem der falschen User- und Gruppenrechte, wie etwa durch Dateierstellungen von PHP und FTP Usern hervorgerufen, von den Todolisten. Doch Sicherheit geht leider einmal wieder nach, also Komfort der User geht vor um genauer zu sein. So lässt sich nun zwar die PHP Ausführung extra regeln, indem man zwischen apache-module, fast-cgi und cgi auswählen kann, doch fehlen Lösungen um die Sicherheit auf Userebene zu gewährleisten. Zunächst einmal funktioniert der Safemode im CGI/FastCGI Modus nicht. Dieses Problem ist ja bekannt, da “php_admin_value” Aufrufe der Vhost Konfiguration nicht mehr greifen. Doch Abhilfe wurde nicht geschaffen. Die Checkbox für den Safemode bleibt und der User fühlt sich irgendwie getäuscht wenn er diese Option in der Vhost Konfiguration im conf/ Verzeichnis vergeblich sucht. Gute Abhilfe hierfür wäre das Anlegen separater php.ini’s pro Vhost. Leider bietet Plesk diese Möglichkeit nicht und so kann man das nur manuell nachrüsten. In der /conf/vhost.conf kann man jeweils per Hand diese Eintragen über die Funktion “FCGIWrapper”.

Doch ich mache mir das ganze einfacher und es ist in meinen Augen relativ sicher. Zunächst laufen alle Hosts über FastCGI. Safe_mode ist in /etc/php5/cgi/php.ini systemweit aktiviert. Somit bleiben dank Suexec mit der entsprechenden UserID und GroupID, wie es Plesk automatisch mitbringt, kaum Schlupfmöglichkeiten.

Was definitiv noch weg muss sind die POSIX Kommandos, diese deaktiviere ich mit der “disable_functions” Option ebenfalls in der php.ini:

disable_functions = posix_access,posix_ctermid,posix_get_last_error,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrname,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_initgroups,posix_isatty,posix_kill,posix_mkfifo,posix_mknod,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

Der Test mit einigen HackerShells wie etwa C99.php und safe0ver.php hat dadurch komplett ins Leere gegriffen.

Nun noch eaccelerator installieren, das geht auf Debian recht einfach mit Hilfe dieses Blogartikels:

http://www.howtoforge.de/howto/linux/eaccelerator-in-php5-debian-etch-integrieren/

Eine andere Alternative wäre noch suPHP, werde ich vielleicht demnächst vorstellen:

http://serversupportforum.de/forum/faqs-anleitungen/18518-how-php5-2-3-mit-suphp-eaccelerator-automatische-vhost-conf-f-r-plesk.html

Wer mehr über PHP, Perl und Linux erfahren möchte und Insider ist oder sein möchte, dem empfehle ich meine Lieblingszeitung iX des heise Verlags:

Bookmark and Share

Weiterführende Links:

Tags: , ,

Autor: Ben
Vom: Donnerstag, Juli 23rd, 2009 um 20:02 in der Kategorie Allgemeines. Du kannst einen Kommentar hinterlassen oder den Trackback nutzen.

Hinterlasse uns einen Kommentar