On 2/10/07, Adi Andrei <[EMAIL PROTECTED]> wrote:
...

Stiu ca nu e treaba foarte OK din punct de vedere al securitatii ce vreau eu sa 
fac, dar chiar am nevoie ca din respectivul script sa pot executa o linie de 
comanda folosindu-ma de iptables.


Cum se face ca sa fie cat mai ok dpdv al securitatii:

In primul rand gandeste-te ca pagina ta php este un program care va
rula cu privilegiile userului apache. Mai apoi tine cont ca
aplicatiile web pot fi (si sunt!) foarte abuzate si sunt intotdeauna
un risc de securitate, asa ca trebuie sa umbli cu foarte mare atentie
la acordarea de privilegii.

In aceste conditii pot recomanda urmatoarele:

- ai zis ca te loghezi cu userul apache. Foarte rau, userul apache nu
are nevoie de shell pentru activitati legitime, ca atare nu trebuie
sa-i dai. Solutie : pune-i shell /bin/false in /etc/passwd (sau cu
chsh)
- de asemenea ai zis ca poti da "sudo su" cu userul apache. Asta e
chiar mai rau, inseamna ca orice script php poate obtine fara probleme
drepturi de root. Fa curat prin /etc/sudoers , respectiv scoate userul
apache din grupul "wheel"
- pentru a rula exact acea comanda, solutia cu cel mai mult control
este sa faci un script bash care sa faca _exact_ ce ai nevoie ca root,
nimic mai mult. Apoi permite via /etc/sudoers userului apache sa
ruleze ca root fara parola _doar_ acel script. (Mai e o posibilitate,
cu chmod u+s , dar in cazul scripturilor bash nu are efect, din cate
stiu. in plus e mult mai usor de ratacit un script setuidat decat o
linie in sudoers). Vezi ca ai in man 5 sudoers niste exemple (nu te
speria de partea de inceput, skip to examples) .

Greseala cea mai intalnita in cazul asta este "ii fac ce-oi face ca sa
mearga si eventual tai din firewall la sfarsit, oricum e o aplicatie
interna". NU fa asta, e o panta foarte alunecoasa.

--
Petre patitu'

_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug

Raspunde prin e-mail lui