Protejarea apache 2

Atunci când alege un server Web, Apache își câștigă adesea concurenții datorită stabilității, performanței ridicate, open source și multe alte avantaje. Acum Apache există sub forma a două versiuni - o versiune stabilă 1.3, utilizată de milioane de utilizatori și, pe de altă parte, o versiune îmbunătățită și reproiectată 2.0.







Deși noua versiune are un număr de adăugiri și caracteristici semnificative, mulți administratori folosesc încă versiunea mai veche 1.3, considerând-o mai stabilă și mai sigură. Multe fapte confirmă acest lucru. Deoarece versiunea 1.3 a fost folosită de milioane de utilizatori pentru o perioadă lungă de timp, majoritatea găurilor de securitate din această versiune au fost deja detectate. În același timp, versiunea 2.0 poate avea multe vulnerabilități încă neidentificate.

În lumea securității, există mai multe principii de aur care trebuie respectate întotdeauna. Un astfel de principiu este regula care spune că trebuie folosite doar părțile necesare ale software-ului. Toate celelalte componente trebuie să fie blocate, făcute inaccesibile sau chiar imposibil de instalat.

Logica din spatele acestei reguli este foarte simplu - în cazul în care există un software cu o varietate de componente, care sunt activate în mod implicit, vulnerabilitățile de securitate descoperite doar într-una dintre aceste componente pot pune în pericol întregul sistem cu risc de o pauză de succes. Pe de altă parte, dacă utilizați doar câteva componente extrem de necesare, a descoperit o noua vulnerabilitate de protecție nu face neapărat software-ul vulnerabil - deoarece vulnerabilitatea detectată poate afecta componentele care sunt dezactivate sau nu este instalat. Probabilitatea succesului de hacking în acest caz este, evident, mult mai scăzută decât în ​​cazul instalării implicite.

Prin urmare, înainte de a instala Apache 2, este foarte important să știm ce funcționalitate așteptăm cu adevărat de la serverul Web. Acest lucru ne va permite să pregătim o listă de module pe care le vom lăsa activate, iar restul va fi dezactivat în timpul procesului de instalare.

Pentru a oferi cel mai înalt nivel de protecție și, în același timp, pentru a face această soluție portabilă între diferite sisteme Linux / BSD, vom folosi următoarele niveluri de protecție:

Sistem de operare

  • Sistemul de operare trebuie întărit cât mai mult posibil; toate componentele inutile trebuie scoase din sistem.
  • Sistemul de operare nu ar trebui să permită executarea programelor pe stivă (dacă este acceptată).
  • Toate serviciile de rețea inutile trebuie blocate.
  • Numărul fișierelor SUID / SGID ar trebui redus la minimum.

Server de web Apache

  • Sunt incluse numai modulele Apache absolut necesare; Restul trebuie blocat în timpul procesului de compilare
  • Toate paginile web de diagnosticare și serviciul de indexare automată a directorului ar trebui să fie dezactivate.
  • Serverul trebuie să dezvăluie cât mai puține informații despre el însuși - politica de entanglementare. Deși acest lucru nu este un nivel real de protecție, aplicarea acestuia face posibilă implementarea dificilă a penetrărilor.
  • Serverul Web trebuie să ruleze sub un UID / GID dedicat, care nu este utilizat de alte procese de sistem.
  • Procesul Apache trebuie să aibă acces limitat la sistemul de fișiere (chrooting).
  • Apache cromat de mediu nu ar trebui să conțină coajă software (/ bin / sh, / bin / csh, etc) - acest lucru face mult mai dificil de a executa cod rău intenționat.






Instalarea sistemului de operare

Mai întâi de toate, trebuie să alegem sistemul de operare pe care va rula serverul Web. Partea principală a acestui articol descrie protecția Apache pe FreeBSD (5.1), dar cititorii pot utiliza în mod liber sistemul lor de operare preferat Unix, BSD, Linux sau Linux.

În ceea ce privește ipotezele noastre de securitate, după instalarea sistemului de operare, acesta trebuie protejat împotriva atacurilor la distanță și locale. Indiferent de alegerea distribuții UNIX / Linux / BSD, este foarte important să se stabilească sistemul de operare de bază și a elimina orice pachete în exces și se aplică până la data de patch-uri pentru kernel-ul și toate software-ul instalat.

De asemenea, este recomandat să sincronizați periodic serverul orar local cu un timp de încredere, folosind un ceas cu serverul de timp, care este de încredere prin utilizarea Time Protocol de rețea (NTP), și trimite jurnalele de la înregistrarea la distanță, server dedicat.

Apoi, trebuie să descărcați cea mai recentă versiune a serverului Web Apache de pe site-ul Web Apache. Deoarece vrem să dezactivăm module inutile în timpul procesului de compilare, este foarte important să descărcați codul sursă pentru Apache. De asemenea, este important să verificați software-ul descărcat împotriva semnăturii PGP pentru a vă asigura că versiunea descărcată este nemodificată.

Selectați modulele Apache

Deoarece vrem să folosim doar un număr minim de module, compilam toate modulele în mod static. Din acest motiv, vom elimina posibilitatea aplicării vulnerabilității într-un alt modul - mod_so.

În acest pas, configurați, compilați și instalați serverul Web Apache după cum urmează: După instalarea Apache, trebuie să vă asigurați că sunt utilizate numai următoarele module:

Configurarea Apache

Înainte de a rula Apache pentru prima dată, trebuie să schimbăm fișierul de configurare Apache. Trebuie să facem acest lucru, deoarece fișierul de configurare implicit folosește modulele pe care le-am dezactivat, iar fără modificări Apache nu se va executa.

Server de cronometrare

Apoi, restricționăm accesul la procesul de sistem Apache la sistemul de fișiere. Tehnica chrooting este descrisă în detaliu într-un articol anterior, astfel încât în ​​acest moment, am pur și simplu a crea o structură de directoare pentru noua Apache: Proprietarul toate directoarele de mai sus trebuie să fie root, care permisiunea nu ar trebui să permită utilizatorilor normali să efectueze orice schimbare în aceste directoare: În continuare, vom crea o specială fișierul dispozitivului, / dev / null: De asemenea, trebuie să creăm dispozitivul / chroot / httpd / dev / log, care este necesar pentru funcționarea normală a serverului. În cazul sistemului nostru FreeBSD, trebuie să adăugați următoarea linie folosind la /etc/rc.conf: syslogd_flags = "- l / chroot / httpd / dev / log"

Dacă acum Apache-ul funcționează corect, rămâne pentru noi să creăm un script care va lansa Apache în timpul inițial de boot de sistem. În acest scop, poate fi utilizat următorul script: # / bin / sh chroot pe = / chroot / httpd HTTPD = / usr / local / apache2 / bin / httpd pid = / usr / local / apache2 / busteni / httpd.pid echo -n „apache! "caz" $ 1 "la început) / usr / sbin / chroot $ CHROOT $ HTTPD ;; stop) ucideți `pisica $ / $` ;; *) echo "" ecou "Utilizare:` nume_vedere $ 0` "> 2 ieșire 64 ;; esac exit 0 Script-ul de mai sus ar trebui să fie copiate în directorul unde scripturile de pornire implicit. În cazul FreeBSD, acesta este directorul /usr/local/etc/rc.d. Drepturile de acces la acel fișier trebuie să fie stabilite după cum urmează:

Scopul principal al acestui articol a fost de a oferi o metodă de protecție a Apache 2.0, care permite cititorilor să atenueze riscul de hacking reușit, chiar dacă este exploatată o nouă vulnerabilitate. Acesta a arătat cum să instalați Apache cu un număr minim de module, cum să instalați o configurație mai restrictivă și cum să implementați protecția împotriva unui număr mare de exploate prin rularea unui server Web într-un mediu chrootat, fără a utiliza programe de tip shell. Și, deși nici o metodă nu poate oferi protecție 100%, aplicând recomandările de mai sus, va fi mult mai greu să efectuați un atac împotriva Apache 2.0 în comparație cu instalarea implicită.

  • Protejarea apache 2
  • Protejarea apache 2
  • Protejarea apache 2
  • Protejarea apache 2







Articole similare

Trimiteți-le prietenilor: