Apache und open_basedir
Moin allerseits, ich bin grade dabei, auf meinem Testserver etwas mit Virtual Hosts rumzuspielen. (Woody, Apache 1.3.26, PHP 4.3.4 als Modul) Soweit funktioniert auch alles wunderbar. Verkürztes Beispiel: # vhost1 VirtualHost vhost1 DocumentRoot /home/vhost1 ServerName www.vhost1.de /VirtualHost # vhost2 VirtualHost vhost2 DocumentRoot /home/vhost2 ServerName www.vhost2.de /VirtualHost Jetzt möchte ich natürlich vermeiden, daß ein Skript, das unter /home/vhost1 liegt, Zugriff z.B. auf /home/vhost2 bekommt. Soweit ich das bisher gesehen habe, ist open_basedir mein Freund. Allerdings tut es das nicht so ganz, wie ich mir das vorstelle und google liefert leider zum Teil widersprüchliche Informationen. Bevor ich jetzt mit trial and error loslege, einfach mal einige Fragen: 1. Muss safe_mode aktiviert sein, damit open_basedir funktioniert? 2. Sollte safe_mode aktiviert sein? ;-) (Welche Probleme kann ich mir damit einfangen wenn z.B. Pear, phpMyAdmin und SquirrelMail laufen) 3. Muss die php_admin_value open_basedir-Anweisung im Bereich Location stehen? 3. Welche Verzeichnisse sollte ich zusätzlich bei open_basedir freigeben? Soweit ich das sehe, kann ich ja Upload und Session-Verzeichnisse mit php_admin_value upload_tmp_dir bzw. php_admin_value session.save_path beeinflussen, so dass Zugriff auf /tmp nicht mehr unbedingt nötig ist. Was sollte sonst noch freigegeben sein? 4. Gibt es sonst etwas, auf das ich achten sollte? Bitte jetzt nicht RTFM sagen, das hab ich gemacht... ;-) Danke schonmal Grüße Günther
Re: Apache und open_basedir
Hallo ich bin grade dabei, auf meinem Testserver etwas mit Virtual Hosts rumzuspielen. (Woody, Apache 1.3.26, PHP 4.3.4 als Modul) Weiss nur Antwort auf Nr. 3: Diese Php admin flags kannst du im VirtualHost Container definieren und musst nicht im Location Container...wenn das die Frage war... Wenn du auf die Sicherheit wirklich viel Wert legst wäre PHP als CGI vielleicht besser. Und dann mit suexec cgi nur als den definierten User ausführen lassen. Vielleicht hilfreich wäre auch noch kritische Funktionen in php.ini zu deaktivieren (unter disable_functions)..z.b system oder ähnliche wenn diese nicht unbedingt gebraucht werden. adieu -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)
Re: Apache und open_basedir
Guenther Theilen wrote: 1. Muss safe_mode aktiviert sein, damit open_basedir funktioniert? Nein, das ist ja der Vorteil von open_basedir, dass es auch ohne den Safe Mode funktioniert. 2. Sollte safe_mode aktiviert sein? ;-) (Welche Probleme kann ich mir damit einfangen wenn z.B. Pear, phpMyAdmin und SquirrelMail laufen) Die meisten Sachen, sofern sie nicht externe Programme ausfuehren muessen oder Dateien schreiben wollen, funktionieren problemlos mit Safe Mode, andere aber nicht. Eigentlich kann man auf den Safe Mode verzichten, wenn man schon open_basedir hat. 3. Muss die php_admin_value open_basedir-Anweisung im Bereich Location stehen? Nein, es reicht, wenn sie im VirtualHost Bereich steht. 3. Welche Verzeichnisse sollte ich zusätzlich bei open_basedir freigeben? Soweit ich das sehe, kann ich ja Upload und Session-Verzeichnisse mit php_admin_value upload_tmp_dir bzw. php_admin_value session.save_path beeinflussen, so dass Zugriff auf /tmp nicht mehr unbedingt nötig ist. Was sollte sonst noch freigegeben sein? Die beiden sollten definitiv NICHT freigegeben werden fuer open_basedir, sonst kann der User ja da selbst drin rumfuhrwerken. Die Funktion move_uploaded_file() funktioniert unabhaengig von open_basedir, das heisst auch wenn das Verzeichnis nicht freigegeben ist, wird die Datei trotzdem rauskopiert. Es ist auch empfohlen gerade diese Funktion zu benutzen und nicht copy(). 4. Gibt es sonst etwas, auf das ich achten sollte? Ja, wirklich sicher ist das alles in einer Shared Hosting Umgebung nicht. Auch wenn es von der Performance her schlechter ist als die mod_php Loesung wuerde ich da in jedem Fall eine Loesung mit SuEXEC bevorzugen. Fuer den etwas einfacheren Gebrauch und auch nur mit PHP kannst du auch suPHP(.org) benutzen. Viele Gruesze Patrick -- Patrick Preuster [EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED] 'Heaven doesn't want us and Hell is afraid we'll take over!' -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject unsubscribe. Probleme? Mail an [EMAIL PROTECTED] (engl)