PHP: safe_mode und open_base_dir

converge

New Member
Hallo zusammen,

ich möchte gerade meinen Webserver etwas umstellen und bei einer TYPO3-Installation den safe_mode wieder auf On stellen. Allerdings liegt die TYPO3-Source außerhalb des DokumentRoots. Nun dachte ich, einfach mal safe_mode auf On stellen und in der VirtualHost Konfiguration per open_base_dir den Zugriff wieder erlauben. Allerdings komme ich irgendwie nicht durch.

php.ini
Code:
safe_mode = On
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =

VirtualHost:
Code:
NameVirtualHost XX.XX.XX.XXX:80

<VirtualHost XX.XX.XX.XXX:80>
	
	ServerName domain.xy
	DocumentRoot /var/www/domain.xy/htdocs
	ServerAdmin [email protected]

	CustomLog /var/www/domain.xy/logs/access.log combined
	ErrorLog /var/www/domain.xy/logs/error.log

	<Directory /var/www/domain.xy/htdocs>
		php_admin_value open_basedir /var/www/domain.xy/htdocs:/tmp:/var/www/typo3source
	</Directory>

</VirtualHost>

Wenn ich den safe_mod wieder auf Off schalte, dann komme ich wunderbar durch. Also Berechtigungen können es nicht sein, glaube ich zumindest.

Danke für eure Tipps
 
Ach tatsächlich? Das ist mir entgangen. Eigentlich wollte ich vermeiden, dass der Apache einen Austritt aus dem DocumentRoot zulässt. Wie kann man dies sonst verhindern?
 
Hallo,

da dürfte das von dir angesprochene open_basedir schon reichen.
Das verhindert, dass PHP Dateien ausserhalb der angegebenen Pfade öffnen kann.

Grüße
Alex
 
Last edited by a moderator:
Lege open_basedir auf das Webroot bspw und füge zudem das Source-Verzeichnis von Typo3 hinzu.

Code:
/var/www/domain/htdocs;/var/www/src/typo3
 
Zur open_basedir-Restriction:
Diese Einstellung verhindert nur, dass PHP-Funktionen wie fopen() oder readfile() "ausbrechen" können.
Wenn jemand das System knackt und eigenen PHP-Code einschleust, könnte dieser jemand mit den PHP-Befehlen system(), exec() und wie sie nicht alle heißen Systembefehle absetzen, bei denen diese open_basedir-Restriction nicht greift.
Du müsstest also - um ganz sicher zu sein - diese Funktionen über die php.ini deaktivieren:
sytem, socket, passthru, shell_exec, shell, ini_restore, show_source, popen, escapeshellcmd, proc_nice

Wie gut sich das allerdings mit Typo3 versteht kann ich nicht sagen.
 
Einen Server wirklich nach innen abzusichern ist ein Haufen Arbeit. Safe-Mode und Open-Basedir kann man nicht wirklich als Sicherheitsmaßnahme bezeichnen, das macht dir mehr Ärger als dem Hacker. Wenn du wirklich abdichten willst, hilft nur chroot.
 
Der safe_mode ist wirklich Schrott und macht nur Probleme (deswegen fliegt es ja auch aus PHP raus), open_basedir ist in Verbindung mit den deaktiverten php-Funktionen keine so schlechte Sache (wenn man um die Limits eines "chroots" auf Anwendungsebene weiss).
 
Außerdem sollte man beachten, das die open_basedir-Richtlinie nur was bringt, wenn man keine anderen Scriptsprachen im Webserver zuläßt. Wenn man seine Webs für die anderen Sprachen auch absichert, dann kann man sich viele der PHP-internen SIcherheitsmaßnahmen sparen.
 
Wo sich dieser Thread bereits schon in Richtung Sicherheit bewegt, gilt es noch zu erwähnen, dass man neben der disable_functions sich noch überlegen sollte, PHP mittels SuPHP, FastCGI/CGI statt mod_php auszuführen, da dann die Scripte nicht mehr mit den Rechten des Apache-Webservers ausgeführt werden.
 
Chroot ist kein Security-Feature! Aus einem Chroot ist man schneller ausgebrochen, als es der Admin aufsetzen kann.
 
OpenVZ ist ja kein chroot, sondern eine Virtualisierung und ist somit deutlich schwerer zu umgehen (aber durchaus möglich). Insofern kann man OpenVZ für eine einfache Trennung von Diensten oder Kunden im 0815-Hosting gut nutzen. Ernsthafte Angreifer hält das aber nicht wirklich davon ab auf den Host zuzugreifen, denn die nötigen RootKits gibt es mitlerweile schon für kleines Geld.
 
Nein. Und aus einem chroot kannst du auch nur ausbrechen, wenn du root bist.
Auch als User kann man problemlos aus einem Chroot ausbrechen, man muss sich nur etwas mehr mit der Materie beschäftigen. Google liefert dazu einige brauchbare Rezepte frei Haus...
 
Wenn du so genau weißt, dass soetwas geht, und vor allem wie es geht, frag ich mich, warum du dieses Wissen nicht längst gegen irgend einen Server da draußen eingesetzt hast. Gibt doch genug, die sich darauf verlassen.
 
Back
Top