[LUGOS] web server z full privilege separationom

Rok Potočnik r at rula.net
Tue Dec 1 13:27:30 CET 2009


Jure Pečar wrote:
> On Tue, 01 Dec 2009 07:37:25 +0100
> Rok Potočnik <r at rula.net> wrote:
> 
>> Jure Pečar wrote:
>>> apache mpm itk si že pogledal?
>> glede na spletno stran nobena apache* resitev ni produkcijska...
> 
> Odvisno od definicije produkcijske rešitve.
> Če gledaš kako telekomaško definicijo, potem velika večina opensource softvera ni produkcijska ;)
> 
> Če hočeš switcat uidje, potem moraš laufat kot root.
> 
> Če hočeš privilege separation ala openbsd, potem ti cel httpd laufa pod enim userjem in nima kej uid spreminjat. Takih je danes večina web serverjev. Itak kej več kot bind na port 80 nimajo za počet kot root.
> V takem primeru si moraš omislit kako fastcgi rešitev. Konkretno vem da lahko pri php-fpm definiraš različne poole procesov na različnih portih/socketih, ki laufajo pod različnimi userji.

Ja... I was thinking more like a...

zalaufas kot root, le-ta binda na port 80, generira vse subprocese, od 
tega najmanj enega, ki handla analizo requestov (id nobody/apache/www) 
ter po enega za vsak vhost posebej (id vsakega userja/vhosta posebej), 
le-ti potem naprej skrbijo za sanity, torej forkajo svoje workerje in v 
stilu garbage collectorja na lep nacin pobijajo tiste sinove, ki ne 
delajo nicesar pametnega ze lep cas in s tem le kurijo sistemske resurse.
ob novem requestu en worker za analizo zacne prejemat request na en 
dinamicen del pomnilnika, in iz njega izlusci Host direktivo, takoj ko 
se to zgodi, preda celoten request pravemu workerju za dolocen vhost, 
bodisi prek socketa, shared memory, kakorkoli... naprej je pa stvar 
interpretacije...

-- 
LP, Rok



More information about the lugos-list mailing list