der "haupt-apache" läuft ja als root wegen port 80. wie is es jetz möglich dass die anfragen eines clients auf 80 über einen child-prozess behandelt werden?
müssen die einkommenden und ausgehenden daten dann auch wieder über den haupt-apache zum child bzw. zum client geleitet werden?
und noch ne frage: isses möglich apache nicht als root laufen zu lassen und trotzdem rechte für port 80 zu geben, oder bin ich für "erweiterte sicherheit" auf sachen wie rsbac angewiesen? gibt es da noch andere konzepte?
frage zu httpd, childs und ports :)
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: frage zu httpd, childs und ports :)
Mit RSBAC würde das auf jeden Fall gehen, so wird's jedenfalls in kommenden Versionen des Adamantix-Projekts gehandhabt werden. SELinux sollte sowa auch können, wenn du allerdings über solche Dinge nachdenkst, würde ich dir RSBAC ans Herz legen, da das wesentlich bessere Möglichkeiten bietet (und zudem wohl noch "einfacher" zu konfigurieren sein soll ;) ).und noch ne frage: isses möglich apache nicht als root laufen zu lassen und trotzdem rechte für port 80 zu geben, oder bin ich für "erweiterte sicherheit" auf sachen wie rsbac angewiesen? gibt es da noch andere konzepte?
DebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: frage zu httpd, childs und ports :)
Der Prozess, der im Apachen stattfindet nennt sich Forking und eine coole Erfindung. Wenn man aus der Windowswelt kommt ist es zwar ein bißchen wie Voodoo, aber es funktioniert!
Also: Der Hauptapache startet als root, denn nur root darf an Ports unterhalb von 1024 (sog. privilegierte Ports) binden. Bekommt er nun eine Connection, so forkt er. Das kannst Du Dir am besten (kein Scherz) wie klonen vorstellen. Ein Befehl bewirkt, daß danach ein weiterer Apache-Prozess läuft. Und zwar mit den gleichen Daten, an der gleichen Stelle wie der originale Apacheprozess. Dieser Klon gibt nun die Root-Rechte auf und wird wwwrun. Die offene Verbindung über den Port 80 behält er aber. Der Originalprozeß macht im wesentlichen nichts anderes, als auf weitere Anfragen zu warten.
Der Haupt-Prozess hat also nur in der Anfangsphase jeder Verbindung etwas zu tun, danach nicht mehr.
Grüße
Pollux
Also: Der Hauptapache startet als root, denn nur root darf an Ports unterhalb von 1024 (sog. privilegierte Ports) binden. Bekommt er nun eine Connection, so forkt er. Das kannst Du Dir am besten (kein Scherz) wie klonen vorstellen. Ein Befehl bewirkt, daß danach ein weiterer Apache-Prozess läuft. Und zwar mit den gleichen Daten, an der gleichen Stelle wie der originale Apacheprozess. Dieser Klon gibt nun die Root-Rechte auf und wird wwwrun. Die offene Verbindung über den Port 80 behält er aber. Der Originalprozeß macht im wesentlichen nichts anderes, als auf weitere Anfragen zu warten.
Der Haupt-Prozess hat also nur in der Anfangsphase jeder Verbindung etwas zu tun, danach nicht mehr.
Grüße
Pollux