Apache mit chmod 750 in htdocs-root tuts ncht

Rund um die Sicherheit des Systems und die Applikationen
mstuebner
Posts: 184
Joined: 2002-06-19 00:05
Location: 84424 Isen
 

Apache mit chmod 750 in htdocs-root tuts ncht

Post by mstuebner »

Hallo @ all,

da es sich androht dass evtl. demnächst der eine oder andere fremde Benutzer per FTP und SSH zugriff auf den Server bekommen soll muss ich mich nun endlich mal mit Sicherheit beschäftigen.

Zu diesem Zweck dachte ich mir (Kurzfassung) in den Verzeichnissen der einzelnen Domains folgendes einzusetzen:

- Pro Kunde eine Gruppe, welche ab dem htdocs alle Rechte besitzt
- in selbigen Verzeichnis für "Others" Rechte auf -rwx
- Apache user ist Mitglied jeder Kundengruppe und hat dadurch lesend Zugriff.

Soweit die Theorie. Nur durfte ich feststellen, dass obwohl User und Apache der selben Gruppe zugehören, der Apache seine Arbeit einstellt sobald "Others" das -x genommen wird, obwohl er selbst ja +rx über die Gruppe hat.

Hat jemand:

- eine Idee warum das so ist
- wie man ansonsten verhindern soll, dass Kunden sich gegenseitig in die Verzeichnisse schauen können?

Matthias
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
 

Re: Apache mit chmod 750 in htdocs-root tuts ncht

Post by dodolin »

in selbigen Verzeichnis für "Others" Rechte auf -rwx
Also das "w" würde ich da aber gaaaanz dringend entfernen. Es gibt doch wirklich so gut wie keinen Grund, warum "others" irgendwo schreiben können muss, oder?
eine Idee warum das so ist
Nur eine Vermutung: Ein User hat zu einer Zeit immer nur genau eine Gruppe. Wenn ich unter einer anderen Gruppe arbeiten will, muss ich das ja auch explizit mit newgrp sagen (man newgrp), obwohl ich vielleicht in mehreren Gruppen Mitglied bin. Der Apache arbeitet halt immer unter der Gruppe, die in seiner httpd.conf angegeben ist.
wie man ansonsten verhindern soll, dass Kunden sich gegenseitig in die Verzeichnisse schauen können?
So, wie man das auch für ganz normale $HOME/public_html machen würde. $HOME ist 711, public_html ist 755 (sofern Directory-Listing dort möglich sein soll, ansonsten geht vielleicht auch 711, bin mir aber nicht sicher).

Du kannst das nicht 100%ig verhindern. Was übers Web zugänglich ist, ist auch für andere User zugänglich.

Beispiel, wie es an meiner Uni gehandhabt wird. Es gibt eine Gruppe www-users, zu der alle normalen User gehören. Der Apache läuft unter dieser Gruppen-ID. Jetzt ist es möglich, Verzeichnisse und Dateien lediglich für diese Gruppe zum Lesen freizugeben und "Others" brauchen keinerlei Rechte. Aber auch hier kann natürlich jeder User des Systems zur Gruppe www-users wechseln und den Content der Verzeichnisse anschauen. Siehe oben: Was für den Apachen (und somit für die Welt) zugänglich ist, ist auch für andere User zugänglich.

Ich wüsste da nichts besseres. Man kann höchstens das Directory-Listing ('r' für das Directory) teilweise verhindern, mehr aber nicht. IMHO.
mstuebner
Posts: 184
Joined: 2002-06-19 00:05
Location: 84424 Isen
 

Re: Apache mit chmod 750 in htdocs-root tuts ncht

Post by mstuebner »

dodolin wrote:
in selbigen Verzeichnis für "Others" Rechte auf -rwx
Also das "w" würde ich da aber gaaaanz dringend entfernen. Es gibt doch wirklich so gut wie keinen Grund, warum "others" irgendwo schreiben können muss, oder?
Du hast das MINUS vor rwx gesehen?
dodolin wrote: Nur eine Vermutung: Ein User hat zu einer Zeit immer nur genau eine Gruppe. Wenn ich unter einer anderen Gruppe arbeiten will, muss ich das ja auch explizit mit newgrp sagen (man newgrp), obwohl ich vielleicht in mehreren Gruppen Mitglied bin. Der Apache arbeitet halt immer unter der Gruppe, die in seiner httpd.conf angegeben ist.
Da bist Du Dir sicher? Irgendwie mag ich das nicht glauben. Wozu listet sonst WebMin die sekundären Gruppen auf?
dodolin wrote:
wie man ansonsten verhindern soll, dass Kunden sich gegenseitig in die Verzeichnisse schauen können?
So, wie man das auch für ganz normale $HOME/public_html machen würde. $HOME ist 711, public_html ist 755 (sofern Directory-Listing dort möglich sein soll, ansonsten geht vielleicht auch 711, bin mir aber nicht sicher).

Du kannst das nicht 100%ig verhindern. Was übers Web zugänglich ist, ist auch für andere User zugänglich.
Du hattest aber schon gelesen dass am Anfang meines Postings was von FTP / SSH stand? Scheinbar nicht.
dodolin wrote:Ich wüsste da nichts besseres. Man kann höchstens das Directory-Listing ('r' für das Directory) teilweise verhindern, mehr aber nicht. IMHO.
Nocheinmal: Du bringst sehr gründlich Zugriff über Apache und über Filesystem durcheinander!.

Lösung für meine eigene Frage:

Man setze die Rechte wie ich es getan hatte, gibt aber "Others" ein +x und schon geht alles, User können aber gegenseitig nicht in die Verzeichnisse schauen. Mal sehen ob man das noch weiter einschränken kann.

Matthias
dodolin
Posts: 3840
Joined: 2003-01-21 01:59
Location: Sinsheim/Karlsruhe
 

Re: Apache mit chmod 750 in htdocs-root tuts ncht

Post by dodolin »

Du hast das MINUS vor rwx gesehen?
Nunja, das kann man so und so auffassen. Je nachdem, ob das Minus als Argument beim chmod übergeben wird, oder ob es beim Listing mit ls -l angezeigt wird. Dann war das also ein Missverständnis, das wir jetzt geklärt haben.
Da bist Du Dir sicher?
Ich schrieb doch extra: "Nur eine Vermutung".
Wozu listet sonst WebMin die sekundären Gruppen auf?
Das weiss ich nicht, ich kenne Webmin nicht näher.
Jedenfalls kann man in Apache 1.3.X die Group-Directive nur in der Server-Config oder im VirtualHost-Kontext angeben. Bei Apache 2.X soll das ja anscheinend anders sein. Weiss ich, ob alle deine Benutzer einen eigenen vhost haben? Dann könntest du die Apache-Group pro vhost auf die Gruppe des jeweiligen Benutzers setzen. Das setzt natürlich voraus, dass jeder User seine eigene Gruppe hat.
Du hattest aber schon gelesen dass am Anfang meines Postings was von FTP / SSH stand? Scheinbar nicht.
Doch, hatte ich sehr wohl gelesen. Andere Möglichkeit: Sowohl der ftpd als auch der sshd machen grundsätzlich ein chroot ins User-Home-Verzeichnis und es besteht für den User keine Möglichkeit, aus diesem herauszukommen. Aber auch hier weiss ich ja nicht, ob das für dich und deine User eine Option ist, oder ob sie auch Zugriff auf das System benötigen...
Nocheinmal: Du bringst sehr gründlich Zugriff über Apache und über Filesystem durcheinander!
Das glaube ich nicht, aber wenn du meinst... dann antworte ich in Zukunft halt lieber nicht mehr, wenn dir das lieber ist.
Man setze die Rechte wie ich es getan hatte, gibt aber "Others" ein +x und schon geht alles, User können aber gegenseitig nicht in die Verzeichnisse schauen. Mal sehen ob man das noch weiter einschränken kann.
Das war doch genau das, was ich dir zu sagen versuchte. Aber das bringt keine wirkliche Sicherheit, IMHO. Was für Rechte haben denn dann die Dateien, die in diesem Verzeichnis liegen? Andere User können dann zwar kein Directory-Listing machen... wenn sie aber den Dateinamen kennen/erraten, können sie (je nach Rechten der Datei) diese trotzdem lesen.