Apache – suExec – FastCGI – PHP = Sicherheitsproblem

Apache – suExec – FastCGI – PHP = Sicherheitsproblem

Ich habe Apache mit FastCGI (mod_fastcgi), suExec und PHP auf meiner lokalen Entwicklungs-Box installiert. Funktioniert perfekt, bis auf eine Sache.

Nehmen wir an, ich habe zwei Benutzer:

user1 - /home/user1/public_html
user2 - /home/user2/public_html

Ich habe eine ernsthafte Sicherheitslücke in meiner Konfiguration entdeckt: Ich kann eine Datei aus dem Web-Root von Benutzer2 in die Datei von Benutzer1 einbinden. Wie kann ich das verhindern? Irgendwelche Tipps?

php-cgiDer Prozess wird unter dem richtigen Benutzer ausgeführt.

Antwort1

Ich würde vorschlagen, dass Sie Folgendes base_pathin Ihrem VirtualHost festlegen:

php_admin_value open_basedir /usr/local/www/sixeightzero

Antwort2

Wenn das Ziel darin besteht, PHP unter dem Namen der Benutzer auszuführen, versuchen Sie, sie zu trennenapache2-mpm-itk, es ist viel einfacher bereitzustellen als Fast-CGI und funktioniert großartig.

Zur Verwendung müssen Sie nur diese Zeile zur Virtualhost-Konfiguration hinzufügen:

AssignUserId someuser somegroup

Sie können bei Bedarf auch MaxClientsVHost und NiceValue festlegen.

Antwort3

Die einzige Möglichkeit, es richtig zu machen, besteht darin, einem Benutzer das Lesen von Dateien aus dem Home-Verzeichnis eines anderen Benutzers zu verbieten, sie jedoch für den Webserver lesbar zu lassen.

Sie können dies erreichen, indem Sie (Beispiel) Folgendes tun:

Dateisystem mit ACL-Optionen mounten: mount -o acl /dev/sda /home

Erlauben Sie dem Webserver den Zugriff darauf:

setfacl -m u:nobody:r-x /home/user1

setfacl -m u:nobody:r-x /home/user2

Dem Eigentümer das Lesen erlauben:

setfacl -m u:user1:r-x /home/user1

setfacl -m u:user2:r-x /home/user2

verwandte Informationen