Page 1 of 1

Datei-Rechte für webs, sicherste Variante?

Posted: 2011-01-26 19:15
by Tomm
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

Re: Datei-Rechte für webs, sicherste Variante?

Posted: 2011-01-26 23:20
by Tomm
Hallo matzewe01, ja das ist eine gute Umsetzung. Damit kann keiner Firlefanz machen.

Danke & Grüße
Tomm

Re: Datei-Rechte für webs, sicherste Variante?

Posted: 2011-01-27 11:27
by rudelgurke
Zusätzlich kannst du noch /tmp und ähnliche Verzeichnisse (e.g. /var/db/apache/vhost_1/session_temp_dir etc.) - im Grunde alles wo User schreiben dürfen, per nullfs als noexec mounten.
Dann kann dort auch niemand Unfug treiben.

Hängt natürlich stark vom Einsatz ab.

Re: Datei-Rechte für webs, sicherste Variante?

Posted: 2011-01-27 12:15
by Tomm
Hallo rudelgurke,

ich habe per php5.ini die Pfade für "upload_tmp_dir" und "session.save_path" auf jeweils getrennte Pdade innerhalb meines noexec-Filesystems umgebogen.

Zusätzlich ist per "open_basedir" der Zugriff auf die noexec und /var/www/webs... beschränkt, in den Applikationen sind die jeweiligen Pfade für Schreibzugriffe auch umgebogen, d.h. es gibt für den Web-User keine beschreibbaren Pfade innerhalb von /var/www.

/tmp war sowieso schon immer als "noexec,nosuid" gemounted.

Habe ich damit alles erwischt?

Grüße
Tomm

Re: Datei-Rechte für webs, sicherste Variante?

Posted: 2011-01-27 12:34
by Joe User
Für PHP sollte das auf Dateisystemebene vorerst ausreichend sein, bei Perl/Python/etc. muss man eventuell noch etwas nachlegen.

Re: Datei-Rechte für webs, sicherste Variante?

Posted: 2011-01-27 12:54
by Tomm
Hallo Joe User.

Ich habe zwar weder Perl noch Phyton im Einsatz, würde mich aber trotzdem interessieren.

Was müsste man dort nachlegen? Gibt es dafür irgendwelche speziellen Hardening-HowTo welche über das Übliche (File-Rechte, suexec, tmp-Dirs absichern) hinausgehen?

Sehr schön das sich über das Thema eine Diskussion entfaltet! Es gibt gibt sicher noch den ein oder anderen Tipp den nicht jeder kennt.

Grüße
Tomm