Datei-Rechte für webs, sicherste Variante?

Rund um die Sicherheit des Systems und die Applikationen
Tomm
Posts: 7
Joined: 2011-01-22 18:17

Datei-Rechte für webs, sicherste Variante?

Post by Tomm » 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

Tomm
Posts: 7
Joined: 2011-01-22 18:17

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

Post by Tomm » 2011-01-26 23:20

Hallo matzewe01, ja das ist eine gute Umsetzung. Damit kann keiner Firlefanz machen.

Danke & Grüße
Tomm
Last edited by Tomm on 2011-01-26 23:21, edited 1 time in total.

User avatar
rudelgurke
Posts: 405
Joined: 2008-03-12 05:36

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

Post by rudelgurke » 2011-01-27 11:27

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.

Tomm
Posts: 7
Joined: 2011-01-22 18:17

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

Post by Tomm » 2011-01-27 12:15

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

User avatar
Joe User
Project Manager
Project Manager
Posts: 11139
Joined: 2003-02-27 01:00
Location: Hamburg

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

Post by Joe User » 2011-01-27 12:34

Für PHP sollte das auf Dateisystemebene vorerst ausreichend sein, bei Perl/Python/etc. muss man eventuell noch etwas nachlegen.
Last edited by Joe User on 2011-01-27 12:35, edited 1 time in total.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

Tomm
Posts: 7
Joined: 2011-01-22 18:17

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

Post by Tomm » 2011-01-27 12:54

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