PHP als CGI mit suPHP - Maßnahmen für mehr Sicherheit

Apache, Lighttpd, nginx, Cherokee
Post Reply
lucullus
Posts: 5
Joined: 2005-03-02 10:53
 

PHP als CGI mit suPHP - Maßnahmen für mehr Sicherheit

Post by lucullus »

Bei der Vergabe der Benutzerberechtigungen bin ich nun folgendermassen vorgegangen:

jeder Benutzer ist (alleiniges) Mitglied einer gleichlautenden Gruppe, als auch der Gruppe "ftpuser". Die Mitgliedschaft bei ftpuser erlaubt ihm, sich mit proftpd einloggen zu können (hier wurde eingestellt, dass allen anderen der Zugriff verwehrt bleibt). Alle Files die der Benutzer nun via FTP oder via PHP-Skript anlegt, sollten nun eine eindeutige UID und GID tragen, d.h. kein anderer User sollte diese Dateien anrühren können. Seht ihr das auch so?

Im Gegensatz zur Modul-Variante sind nun offensichtlich folgende Direktiven in der vhost.conf nicht mehr korrekt:

php_admin_value open_basedir /var/www/user1/user1-1.tld/
php_admin_value upload_tmp_dir /var/www/user1/user1-1.tld/temp
php_admin_value session.save_path /var/www/user1/user1-1.tld/temp/

Mein Wunsch wäre für jeden Benutzer ein eigenes temp-Verzeichnis zu haben, eben für Dateiuploads und Sessions. Lässt sich das nun bei der CGI-Variante von PHP nicht mehr realisieren?

Ich steh dann noch vor einem weiteren Problem: meine Kollegen (als auch ich selbst) wünschen sich am Server Webapplikationen wie z.B. gallery. Zur Erkärung, wer gallery nicht kennt: das ist eine IMHO recht gut gemachte PHP-Applikation für den Betrieb von Online-Bildgalerien. Nun erfordert eine gallery-Installation ImageMagick, was wiederum die exec() - Methode von PHP erfordert - und genau die sollte ja (u.a.) gesperrt werden! Mist. Kann mir jemand verraten, wie ich verhindern kann, dass PHP zwar Binaries aus einem bin-Verzeichnis (das natürlich unter /var/www/user1/user1-1.tld/ liegen müsste) ausführt, jedoch nicht über eine Code Injection andere Dateien, auf die Leserechte bestehen, ausgelesen werden können? Naja zu allem Ã?berfluss noch kann ich den safe_mode nicht auf On stellen, da sonst gallery (und ich vermute das wird auch auf andere Applikationen zutreffen) nicht mehr funktionieren wird. safe_mode_exec_dir scheidet also aus.

Gibt es dafür eine Lösung, oder muss ich mich (auf Kosten von ImageMagick) damit begnügen?
lucullus
Posts: 5
Joined: 2005-03-02 10:53
 

noch ein Nachtrag:

Post by lucullus »

um also irgendwie Sicherheit, sofern das überhaupt momentan möglich ist, näher zu kommen, hätte ich in der php.ini noch folgene änderungen gemacht:

magic_quotes_gpc = On
allow_url_fopen = Off
register_globals = Off
disable_functions = system,shell_exec, passthru,system,show_source,phpinfo (hier solle eigentlich noch unbedingt exec dabei sein, kann aber nicht, weil.. siehe mein erster Thread)


Was habe ich alles vergessen?

Vielen Dank im Voraus,

LG,
Lucullus
mem
Posts: 45
Joined: 2003-12-22 11:09
 

Re: PHP als CGI mit suPHP - Maßnahmen für mehr Sicherheit

Post by mem »

Hallo,

wenn PHP unter dem Eigentuemer der Dateien bzw. des Virtuellen Hosts laeuft und Dein System richtig konfiguriert ist, sollten solche Massnahmen nicht noetig sein.

BTW: phpinfo zu deaktivieren finde ich dann schon ziemlich gemein.
lucullus
Posts: 5
Joined: 2005-03-02 10:53
 

Re: PHP als CGI mit suPHP - Maßnahmen für mehr Sicherheit

Post by lucullus »

nun ja, die ausgabe von phpinfo() speicher ich nach jeder änderung an der php-installation in einem statischen html-file ab, das in einem passwort-geschützten bereich liegt, auf den alle benutzer des servers zugriff haben.

ich weiss dass phpinfo() nicht soooo kritische dinge liefert, es wurde nur in einem artikel von linux-magazin (peer heinlein) empfohlen und so hab ich mich halt dran gehalten
Post Reply