PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : frage zu httpd, childs und ports :)



damava
18.12.03, 17:53
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?

robiotor
18.12.03, 21:32
hehe im gegenteil, apache lässt man nicht als root rennen. du kannst doch apache als jeden beliebigen user laufen lassen wo soll da das problemm sein ?

damava
19.12.03, 09:57
Original geschrieben von robiotor
hehe im gegenteil, apache lässt man nicht als root rennen. du kannst doch apache als jeden beliebigen user laufen lassen wo soll da das problemm sein ?

dass man die childs nicht mit rootrechten versieht is klar. aber wie gesagt muss ja der "haupt-apache" root rechte haben - eben wegen port 80 (und damit er childs mit anderen rechten forken kann)

als "jeder beliebiger user" kann ich ja nicht an 80 binden. genauso wenig wie meine rechte einfach ändern zu können. naja und hier setzen eben meine fragen an :)

Jasper
19.12.03, 12:00
Original geschrieben von damava
dass man die childs nicht mit rootrechten versieht is klar. aber wie gesagt muss ja der "haupt-apache" root rechte haben - eben wegen port 80 (und damit er childs mit anderen rechten forken kann)

als "jeder beliebiger user" kann ich ja nicht an 80 binden. genauso wenig wie meine rechte einfach ändern zu können. naja und hier setzen eben meine fragen an :)

du hast deine fragen ja schon selbst beantwortet. wegen den oben genannten gründen musst du apache als root starten.

wenn du apache nicht als root starten willst, kannst du auch jeden anderen benutzer nehmen, allerdings muss dann der gleiche benutzer in der httpd.conf eingetragen werden, damit seteuid() funktioniert. das port-80-problem kann man durch portumleitung mittels netfilter lösen.

alternativ kann man auch die die systemcalls bind() und fork() im kernel patchen :)


-j

damava
19.12.03, 15:12
ok danke ich wollte das nur bestätigt wissen und ausschließen dass ich irgendwas übersehen hab :)


Original geschrieben von Jasper alternativ kann man auch die die systemcalls bind() und fork() im kernel patchen :)

ja gut ok, die möglichkeit besteht natürlich auch ;)