jeste apache

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Sobota Červen 24 13:37:35 CEST 2000


On Fri, 23 Jun 2000, David Trcka wrote:

> Me argumenty se nesnazi jit smerem jak neco nejde, ale jak musim neco
> resit pomerne slozite, a tim padem riskuju, ze nekde seknu blbou chybu.

Kdyby nekdo do implementoval navrhovane silene prohazovani uidu do Apache,
tak by zrejme nasekal jeste daleko horsi chyby. :P

> Takze abych to shrnul:
> Abych zajistil, ze webmasteri jednotlivych virtualu nemohou programove
> pristupovat do jinych virtualu, musim zaridit:

> 1. aby cgi spoustel suexec jako ten spravny uzivatel

Kdyz mate povoleny suexec, muzete kazdemu virtualnimu hostu nastavit
vlastni User a Group. Pak je jenom potreba, aby byly vsechny jejich
DocumentRooty nejak pekne zorganizovane (napr. pod jednim spolecnym
vrcholem) a aby ty skripty a adresare, kde se nachazeji, mely spravneho
vlastnika a skupinu, aby to suexec byl ochoten spustit.

> 2. aby php a jine veci (SSI) nemohly mimo document_root a ani nemohly
> spoustet programy (napr. /bin/ls, /bin/cat), ktere tam mohou

SSI se da nastavit primerene restriktivne (IncludesNOEXEC, zakazat
FollowSymLinks), pripadne rovnou zakazat, a PHP (jak uz bylo doporucovano)
povolte jen jako CGI, cimz se to prevede na predchozi pripad (ostatne
pozadovat po interpretu nejakeho jazyka, aby misto jadra OS implementoval
separaci uzivatelu, je krajne pomylene a bude to vzdycky bezpecne asi jako
Javascript v browserech).

> 3. aby apache jako nobody mohl vsude

A cenu o nejvice zneuzivany uzivatelsky ucet ziskava (fanfary, prosim)
...nobody! Dejte apachovi jeho vlastni uid a hlavne gid a zaridte, aby ten
gid do tech adresaru mohl pro cteni, ostatni tam nemohli vubec (pokud
nekdo ma nejaky supertajny soubor, tak at ho zpristupni jen pres CGI a
udela na nej chmod og=).

> 4. aby v ramci jednoho virtualu mohly cgi a php cist/zapisovat tytez
> soubory

Viz 2.

> 5. v souvislosti s bodem 4. aby ty soubory nebo adresare, v kterych lezi,
> nebyly world writable.

Viz 3.

> Pritom potrebuju, aby to vsechno byly virtualni servery jednoho web-demona
> (celkem fuk jestli IP-based nebo name-based).

Kdyz by mely byt IP based, proc by to musely byt vsechno nutne virtualni
servery jednoho demona??

Koneckoncu byste taky mohl udelat to, ze budou dva druhy sluzeb: obycejna
bez vsech pitomin (CGI, SSI, PHP), kterou bude obsluhovat spolecny server
a kdyz chce nekdo neco vic, tak si vyzada IP adresu, vy mu nejakym
mechanismem (vtipny jaderny patch, LD_PRELOAD & suid program) umoznite se
na te adrese bindnout na port 80 a on at uz si sam spusti (a take sam
spravuje) HTTP server jaky bude chtit.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux