Datei-Rechte für webs, sicherste Variante?
Posted: 2011-01-26 19:15
Hallo zusammen!
Bisher habe ich auf meinem Server die Rechte für /var/www/[web]/htdocs immer so gesetzt:
1. chown -R root:root /var/www/[web]/htdocs
2. chmod -R 744 /var/www/[web]/htdocs
3. find . -type d -exec chmod go+x {} \;
Einzige Ausnahme waren directorys welche für diverse Fileuploads genutzt werden. Dieses sind www-data:www-data und 0700, wobei www-data der User des Apache2-Servers ist. Die genannten directorys sind in einem extra Filesystem, welches mit "noexec" gemounted wurde.
Wie ihr an den Datei-Rechten sehen könnt, liest der apache die Dateien über die Rechte der Gruppe "others".
Was mir nicht gefällt ist folgendes: Wenn jemand irgendwie unprivilegierten Shell-Zugriff auf meinen Server bekommen sollte, kann er die ganzen Web-Files auch lesen. Leider hat sich ja die Unsitte eingeschlichen, das einige Apps in ihren conf-Files Klartextpasswörter benötigen, um auf die Datenbank zugreifen zu können. Während ich den Zugriff über den apache via Konfiguration und mod_security gut verhindern kann, gilt dies nicht für jemanden der bereits auf dem System ist.
Meine Überlegung dazu:
1. chown -R root:www-data /var/www/[web]/htdocs
2. chmod -R o-rwx /var/www/[web]/htdocs
3. Ist es evtl. Sinnvoll einen dritten User zu erzeugen, welche anstelle von root Eigentümer der Dateien ist?
Würde das die Situation verbessern oder reiße ich mir dadurch ein anderes Loch auf. Wie habt ihr das geregelt?
Grüße,
Tomm
Bisher habe ich auf meinem Server die Rechte für /var/www/[web]/htdocs immer so gesetzt:
1. chown -R root:root /var/www/[web]/htdocs
2. chmod -R 744 /var/www/[web]/htdocs
3. find . -type d -exec chmod go+x {} \;
Einzige Ausnahme waren directorys welche für diverse Fileuploads genutzt werden. Dieses sind www-data:www-data und 0700, wobei www-data der User des Apache2-Servers ist. Die genannten directorys sind in einem extra Filesystem, welches mit "noexec" gemounted wurde.
Wie ihr an den Datei-Rechten sehen könnt, liest der apache die Dateien über die Rechte der Gruppe "others".
Was mir nicht gefällt ist folgendes: Wenn jemand irgendwie unprivilegierten Shell-Zugriff auf meinen Server bekommen sollte, kann er die ganzen Web-Files auch lesen. Leider hat sich ja die Unsitte eingeschlichen, das einige Apps in ihren conf-Files Klartextpasswörter benötigen, um auf die Datenbank zugreifen zu können. Während ich den Zugriff über den apache via Konfiguration und mod_security gut verhindern kann, gilt dies nicht für jemanden der bereits auf dem System ist.
Meine Überlegung dazu:
1. chown -R root:www-data /var/www/[web]/htdocs
2. chmod -R o-rwx /var/www/[web]/htdocs
3. Ist es evtl. Sinnvoll einen dritten User zu erzeugen, welche anstelle von root Eigentümer der Dateien ist?
Würde das die Situation verbessern oder reiße ich mir dadurch ein anderes Loch auf. Wie habt ihr das geregelt?
Grüße,
Tomm