Ich habe gerade das Vergnügen, 100 Domains von einem alten ISPConfig2-Server auf einen neuen ISPConfig3-Server zu übersiedeln. Der Neue wurde nach der Anleitung "Perfect... Ubuntu 15.04... Apache" eingerichtet.
Da einige Domains ältere Installationen sind, werden diese vermutlich gruseliger weise nur mit PHP 5.3 oder 5.4 laufen, weshalb vermutlich nur PHP-FPM und FastCGI in Frage kommt, da man die im ISPConfig gemütlich verwalten und den Webs zuweisen kann.
Nun möchte ich, dass nicht jeder Benutzer sogut wie alles auf dem Server sehen kann, wie es per Default ist. Trotz Eintrag von den gängigsten Funktionen in disable_functions ist es möglich, mit einer aktuellen PHP-Webshell, die meisten Verzeichnisse des Servers zu durchforsten und alle Dateien zu lesen, die zumindest World-Readable sind. Und das sind nunmal die meisten von Haus aus (siehe /etc oder fremde Webs).
Was also tun, um hier absolute SIcherheit zu gewährleisten, wie man es von einem Shared-Hosting-Server erwartet?
* disable_functions immer wieder erweitern. bei neuen PHP-Versionen kommen viell. neue hinzu, das ist eher fehleranfällig, unter Umständen können Kunden viell. diese Einschränkungen in eigenen php.ini's wieder Überschreiben. Ein aktuelles Joomla zB benötigt eine bestimmte Funktion für die integrierte Updatefunktion, die wieder alles zunichte macht
* eine Art open_basedir wäre nett, die im Reiter "Optionen" bei der Website dürfte nicht greifen
* das ganze sollte nicht nur für PHP gelten, sondern auch für die anderen angebotenen Sprachen (Perl, Ruby, Python) da dort das Spiel wieder von vorne los geht.
* die disable_functions für die Web-Einstellung "PHP-FPM default" verwendet /etc/php5/cgi/php.ini > genau wie ISPConfig; beschränkt man dort disable_functions, funktioniert ISPConfig teilweise nicht mehr
Also wie am einfachsten dieses Problem lösen?
Da einige Domains ältere Installationen sind, werden diese vermutlich gruseliger weise nur mit PHP 5.3 oder 5.4 laufen, weshalb vermutlich nur PHP-FPM und FastCGI in Frage kommt, da man die im ISPConfig gemütlich verwalten und den Webs zuweisen kann.
Nun möchte ich, dass nicht jeder Benutzer sogut wie alles auf dem Server sehen kann, wie es per Default ist. Trotz Eintrag von den gängigsten Funktionen in disable_functions ist es möglich, mit einer aktuellen PHP-Webshell, die meisten Verzeichnisse des Servers zu durchforsten und alle Dateien zu lesen, die zumindest World-Readable sind. Und das sind nunmal die meisten von Haus aus (siehe /etc oder fremde Webs).
Was also tun, um hier absolute SIcherheit zu gewährleisten, wie man es von einem Shared-Hosting-Server erwartet?
* disable_functions immer wieder erweitern. bei neuen PHP-Versionen kommen viell. neue hinzu, das ist eher fehleranfällig, unter Umständen können Kunden viell. diese Einschränkungen in eigenen php.ini's wieder Überschreiben. Ein aktuelles Joomla zB benötigt eine bestimmte Funktion für die integrierte Updatefunktion, die wieder alles zunichte macht
* eine Art open_basedir wäre nett, die im Reiter "Optionen" bei der Website dürfte nicht greifen
* das ganze sollte nicht nur für PHP gelten, sondern auch für die anderen angebotenen Sprachen (Perl, Ruby, Python) da dort das Spiel wieder von vorne los geht.
* die disable_functions für die Web-Einstellung "PHP-FPM default" verwendet /etc/php5/cgi/php.ini > genau wie ISPConfig; beschränkt man dort disable_functions, funktioniert ISPConfig teilweise nicht mehr
Also wie am einfachsten dieses Problem lösen?