Sunteți pe pagina 1din 4

Securizarea serverelor Web

Drago Acostchioaie
Magic Pinguin - Iai, Romnia
dragos[at]biosfarm[dot]ro
Serverul HTTP cel mai utilizat sub sistemele de operare UNIX este Apache. Conform ultimelor statistici realizate
de Netcraft, Inc. (http://www.netcraft.com/survey), din luna aprilie 2002, efectuate asupra a circa 38 milioane de
situri, serverul Web cel mai folosit este Apache, ocupand 53,76 din piata.
In aceasta lucrare ne vom referi la metode de securizare ale serverului Apache.
Serverul Apache poate fi configurat cu ajutorul interfeei grafice apacheconf. Fiierul de configurare principal
este httpd.conf, i este localizat de obicei n directorul/etc/httpd. Mai exist dou fiiere de
configurare, access.conf i srm.conf, care au fost ns nlturate ncepnd cu versiunea 1.3.4.
Fiierul de configurare conine cte o directiv pe fiecare linie, acestea putnd fi continuate pe linia urmtoare
adugnd la sfritul acesteia caracterul "\". Comentariile ncep cu "#". Directivele din fiierul de configurare
principal se refer la configurrile globale ale serverului. Pentru a aplica anumite aspecte ale serverului doar unei
zone din server (e.g. un director), directivele trebuie incluse n cadrul seciunilor: <Directory>,
<DirectoryMatch>, <Files>, <FilesMatch>, <Location> sau<LocationMatch>. Acest lucru poate fi
realizat i prin plasarea unui fiier denumit.htaccess n directorul n care se dorete modificarea comportamentului
serverului, coninnd directivele dorite.
1. Directive pentru definirea zonelor
Directiva <Directory>
Directivele <Directory> si </Directory> se utilizeaz pentru a grupa mai multe directive care se aplic doar
pentru un anumit director. In cadrul numelui directorului specificat, pot fi utilizate i caracterele wildcard "?" i
"*".
Directiva <DirectoryMatch>
Este similar cu <Directory>, cu excepia faptului c accept expresii regulate.
Directiva <Files>
Directivele <Files> i </Files> se utilizeaz pentru a grupa mai multe directive care se aplic doar pentru un
anumit fiier. In cadrul numelui fiierului specificat, pot fi utilizate i caracterele wildcard "?" i "*".
Directiva <FilesMatch>
Este similar cu <Files>, nsa accept i expresii regulate.
Directiva <Location>
Aceasta directiv ofer posibilitatea controlului accesului dup URL. Este similar cu<Files>. Pot fi utilizate i
caractere wildcard.
2. Directive privind controlul accesului
Allow from
Specific cror masini li se permite accesarea unei anumite zone din server. Poate fi un nume de main, un
sfrit de nume de main (de exemplu, infoiasi.ro), o adres IP sau un nceput de adres (spre exemplu,
192.71.30), sau o pereche adres IP/masc de reea. Poate lua i valoarea all, adic toate mainile.
Deny
Specific care maini nu au acces la o anumit zon din server. Valoarea all semnific "nici o main".
Order
Stabilete ordinea n care directivele Allow i Deny sunt evaluate.
AuthUserFile
Specific numele fiierului care conine lista de utilizatori i parole utilizat pentru autentificare (de
exemplu, /etc/httpd/users). Dac nu ncepe cu "/", este considerat ca fiind relativ la ServerRoot. Fiecare linie
conine numele utilizatorului urmat de caracterul ":", apoi parola criptat. Parolele pot fi modificate cu ajutorul
programului htpasswd.
AuthGroupFile
Specific numele fiierului care conine lista de grupuri utilizat pentru autentificare. Fiecare linie conine numele
grupului urmat de caracterul ":", apoi lista de utilizatori care fac parte din grup, separai prin spaiu.
AuthName
Descrie zona supus autentificarii.
AuthType
Specific tipul autentificarii. In implementarea actual este valid doar Basic.
Require
Stabilete ce utilizatori pot accesa o anumita zon. Sunt posibile trei sintaxe:
Require user list_utilizatori: doar utilizatorii specificai pot accesa zona;
Require group list_grupuri: doar utilizatorii care sunt membri ai grupurilor specificate pot accesa zona;
Require valid-users: toi utilizatorii prezeni in fiierul specificat de directivaAuthUserFile sau toi
utilizatorii membri ai grupurilor din fiierul specificat deAuthGroupFile pot accesa zona.
3. Sfaturi privind securizarea unui server Apache
Execuia daemonului Apache
Daemonul HTTP nu trebuie executat ca root, ci sub un utilizator respectiv grup special. In general acesta este
utilizatorul respectiv grupul apache. Acesta nu trebuie s poat accesa fiiere care nu trebuie s fie vizibile i nu
trebuie s poat executa cod care nu are legatur cu serverul httpd. De asemenea, acest utilizator special nu
trebuie sa aib interpretor de comenzi asociat. Utilizatorul respectiv grupul sub care ruleaz daemonul poate fi
stabilit cu ajutorul directivei User respectiv Group.
Drepturile de acces ale fiierelor de configurare
Trebuie acordat o atenie sporit fiierelor de configurare, n general localizate n directorul /etc/httpd/conf,
pentru ca eventualele persoane rauvoitoare s nu le poat vizualiza sau modifica. Astfel, este recomandat ca
fiierul /etc/httpd/conf/httpd.conf s aib drepturile de acces 640.
Drepturile de acces ale fiierelor jurnal
Utilizatorii cu gnduri "necurate" nu trebuie s poat consulta fiierele jurnal (log-urile) generate de serverul
Apache, cu att mai mult s nu le poat modifica. Din aceste fiiere pot fi determinate prile slabe ale
configuraiei serverului i apoi profita de acestea. In acest sens, este recomandat ca directorul /var/log/httpd s
aib drepturile de acces 700.
Scripturile CGI
Programele de tip "cal troian" sunt programe ru intenionate, care se "deghizeaz" sub forma unor executabile
obinuite. Un astfel de program des rspndit este scriptul CGI prost proiectat, de multe ori intenionat.
Scripturile CGI nu trebuie executate ca root. Acestea trebuie plasate ntr-un singur director, n care nu se va
permite accesul utilizatorilor, iar modificrile asupra scripturilor trebuie monitorizate de ctre administratorul
sistemului. De asemenea, aceste scripturi nu trebuie s poat accesa informaii confideniale de pe maina pe care
ruleaz.
Serverul HTTP n cadrul unui Intranet
Dac serverul Apache este utilizat n cadrul unui Intranet (o reea local), poate fi necesar limitarea accesului
clienilor. Astfel, porturile i interfeele de reea pe care serverul HTTP accept conexiuni pot fi configurate
utiliznd directivele BindAddress,Port i Listen.
Bibliografie
1. Drago Acostchioaie, Administrarea i configurarea sistemelor Linux, Polirom, Iai,
2002: http://www.unixinside.org/admin
2. Sabin Corneliu Buraga, Tehnologii Web, Matrix Rom, Bucureti,
2001:http://www.infoiasi.ro/~busaco/books/web.html
3. ***, Apache HTTP Server Version 1.3 Documentation, Apache HTTP Server Documentation
Project: http://httpd.apache.org/docs