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
