Lista de verificare a celor mai bune practici de securitate Apache în 14 pași (carte electronică PDF inclusă)

Publicat: 2017-11-22

railwayfx / stock.adobe.com

Apache rămâne în prezent cel mai important software de server web din lume, cu o cotă de piață de 45,8%. Acestea ajung să fie aproximativ 80 de milioane de site-uri web ale căror servere web sunt alimentate de Apache. Destul de impresionant, nu?

Apache este un software de server web open-source care există din 1995, așa că doar asta spune multe despre fiabilitatea și longevitatea sa. Apoi mai sunt site-urile web de mare profil care rulează pe serverele Apache: Apple, Adobe și Paypal sunt doar câteva dintre mărcile majore care își încredințează site-urile lui Apache.

Desigur, asta nu face ca Apache să fie 100% sigur, deoarece niciun software nu va fi vreodată 100% ferit de hackeri, mai ales când este o platformă atât de cunoscută și de încredere (la fel ca WordPress). Dar dacă sunteți în căutarea unei cărți electronice, un modul, un ghid, un tutorial, un cadru sau o listă de verificare a securității pentru server web Apache, ați ajuns la locul potrivit.

Dacă doriți să vă întăriți securitatea Apache sau aveți probleme de securitate Apache sau încercați să corectați o vulnerabilitate sau două, următoarea listă de verificare vă va oferi 14 bune practici de securitate pe care să le adăugați la planul de securitate al site-ului dvs. web.

Echipa noastră de la WP Buffs ajută proprietarii de site-uri web, partenerii agențiilor și partenerii liber profesioniști să implementeze cele mai bune practici de securitate Apache. Fie că aveți nevoie de noi pentru a gestiona un site web sau pentru a sprijini 1000 de site-uri clienți, noi vă sprijinim.

Lista de verificare a celor mai bune practici de securitate Apache

Pentru aceia dintre voi care doresc să vă întărească cu adevărat site-ul WordPress, securizarea Apache, așa cum ați face-o cu oricare dintre celelalte programe care se conectează și alimentează site-ul dvs., este esențială. Nerespectarea acestui lucru poate afecta chiar viteza site-ului dvs. Deci, iată cum o veți face:

1. Actualizați Apache

Știți cum WordPress și orice pluginuri și teme pe care le-ați instalat trebuie să fie actualizate în mod regulat? La fel și serverul tău web.

Dacă sunteți nervos că site-ul dvs. nu rulează pe cea mai recentă versiune de Apache, îl puteți verifica cu o linie de comandă httpd -v. Dacă versiunea rezultată nu se potrivește cu cea actuală de la Apache, o puteți actualiza cu următoarele:

# yum update httpd
# apt-get install [add Apache version here]c

2. Activați Jurnalele

Dacă lucrați cu un furnizor de găzduire WordPress gestionat, acesta se va ocupa de monitorizarea serverului și WordPress pentru vulnerabilități și alte semne de avertizare. Acestea fiind spuse, ar trebui să urmăriți și traficul pe server.

Cu Apache, puteți obține acces la acest jurnal de activitate actualizându-vă modulul mod_log_config. Practic, vă va spune ce fac utilizatorii de fiecare dată când vă ating serverul.

3. Obțineți un certificat SSL

Deoarece serverul dvs. web gestionează toate solicitările de browser/server către site-ul dvs. web, este important să îl asigurați cu un certificat SSL. Vestea bună este că acum puteți obține un certificat SSL gratuit. Acest lucru este mai important acum decât oricând, așa că dacă nu aveți capacitatea tehnică de a-l instala singur, orice furnizor de găzduire de calitate o va putea face pentru dvs.

4. Adăugați un firewall

Pe lângă protecția adăugată a criptării SSL, serverul dvs. web ar trebui să fie fortificat cu un firewall. Pentru Apache, aceasta înseamnă activarea ModSecurity.

Pentru a-l instala pe serverul dvs., puteți executa următoarele:

# yum install mod_security
# /etc/init.d/httpd restart

Odată ce paravanul de protecție este activ, va împiedica o serie de activități rău intenționate să ajungă la serverul dvs., cum ar fi injecția SQL, deturnarea sesiunii și scriptarea între site-uri.

5. Instalați mod_evasive

Mod_evasive este modulul care vă va proteja serverul Apache de forța brută și atacurile DDoS, deci asigurați-vă că este activat și acest lucru. Va pune pe lista neagră încercările de conectare concurente și eșuate, precum și va monitoriza IP-urile rău intenționate.

6. Setați limite HTTP

Atacurile distribuite de refuzare a serviciului (DDoS) sunt destul de simplu de blocat dacă știți ce fel de acțiuni să urmăriți. Deoarece DDoS tinde să se producă prin lovirea în mod repetat a serverului cu solicitări mari, scopul tău ar trebui să fie să stabilești limite care să împiedice acest lucru.

Iată câteva dintre limitele pe care veți dori să le stabiliți:

  • KeepAlive=pornit
  • KeepAliveTimeout
  • LimitRequestBody
  • LimitRequestFields
  • LimitRequestFieldSize
  • LimitRequestLine
  • LimitXMLRequestBody
  • MaxClients
  • MaxKeepAliveRequests
  • MaxRequestWorkers
  • RequestReadTimeout
  • Pauză

7. Ștergeți modulele neutilizate

Lăsând module neutilizate, neîntreținute sau expirate pe serverul dvs. Apache, vă lăsați site-ul deschis hackerilor printr-un punct de intrare care nici măcar nu trebuie să fie acolo.

Primul lucru pe care ar trebui să-l faceți este să aflați care module sunt de fapt active. Puteți face acest lucru folosind o comandă LoadModule. După ce ați parcurs lista și ați identificat modulele de care nu aveți nevoie, pur și simplu adăugați simbolul „#” înainte de fiecare modul pe care doriți să-l dezactivați și apoi reporniți.

8. Modificați utilizatorul și grupul implicit

Setările implicite și utilizatorii lăsați pe orice software, în general, reprezintă o practică proastă de securitate. Motivul pentru aceasta este simplu: dacă utilizați numele implicit de utilizator sau grup Apache, puteți paria că hackerii sunt conștienți de care sunt acele nume implicite.

În loc să lăsați setările implicite în loc, ar trebui să creați un nou cont neprivilegiat prin care să vă rulați procesele Apache. Folosind comenzile # groupadd și # useradd, puteți seta noile entități. Nu uitați să vă actualizați httpd.conf cu noile nume de utilizator și grup pe care le-ați creat.

9. Blocați accesul la director

Iată un alt exemplu de setări implicite care trebuie schimbate. În acest caz, accesul acordat fișierelor din directorul tău este cel care permite oricui să exploreze oriunde dorește.

Pentru a pune un bloc total în loc, utilizați următoarea comandă:

<Directory "/">
Require all denied
</Directory>

Dacă doriți să activați accesul anumitor utilizatori, puteți face acest lucru cu următorul lucru:

<Directory "/usr/users/*/public_html">
Require all granted
</Directory>

Dacă doriți să activați accesul la anumite foldere din director, puteți face acest lucru cu aceasta:

<Directory "/usr/local/httpd">
Require all granted
</Directory>

De asemenea, este posibil să doriți să citiți cu atenție depozitul de module Apache pentru a modifica în continuare drepturile de acces ale utilizatorilor.

10. Nu publicați directorul

Știați că, dacă serverul dvs. nu are un fișier index, utilizatorii vor putea vedea tot conținutul pe care l-ați stocat în directorul dvs. rădăcină? În mod evident, nu este bine, așa că va trebui să dezactivați această setare implicită cu următoarele:

<Directory /var/www/html>
Options -Indexes
</Directory>

11. Ascundeți detaliile serverului

Deoarece Apache este un software open-source, detaliile despre versiunea utilizată sunt ușor disponibile dacă aceste setări nu sunt dezactivate pe partea serverului. Deoarece hackerii pot folosi acele informații sensibile pentru a afla cum să pătrundă în serverul dvs., veți dori să blocați aceste informații.

Există două lucruri pe care doriți să le dezactivați:

  • ServerSignature – care este versiunea Apache
  • ServerTokens – care include versiunea sistemului de operare, printre alte detalii sensibile ale serverului

Aceste informații pot fi găsite de alți utilizatori prin simpla vizualizare a unei pagini de eroare pe site-ul dvs. web, așa că este destul de important să blocați afișarea acesteia. Pentru a face acest lucru, actualizați httpd.conf cu următoarele:

ServerSignature Off
ServerTokens Prod

12. Ascundeți ETag-ul

Antetul ETag din Apache, din păcate, include o serie de detalii sensibile despre serverul dvs. Evident, orice lucru care împărtășește acest tip de informații cu lumea exterioară ar trebui ascuns. În plus, dacă rulați un site web de comerț electronic, va trebui să ascundeți acest lucru pentru a fi conform PCI.

Pentru a face acest lucru, adăugați următoarea directivă la httpd.conf dvs.:

FileETag None

13. Dezactivați .htaccess Override

.htaccess este un fișier important pentru orice site WordPress. Acesta este motivul pentru care trebuie să îl blocați și să vă asigurați că nimeni altcineva nu vă poate suprascrie setările de configurare.

Pentru a dezactiva acest lucru, adăugați următoarele la httpd.conf la rădăcină:

<Directory />
Options -Indexes
AllowOverride None
</Directory>

14. Dezactivați SSI și CGI

Fișierele compatibile Server Side Includes (SSI) vă pot deschide site-ul la o serie de probleme de securitate dacă nu sunt bifate. Același lucru este valabil și pentru scripturile CGI. Pentru a preveni ca oricare dintre acestea să permită hackerilor să vă supraîncărce serverul sau să injecteze scripturi rău intenționate în codul dvs., nu uitați să le dezactivați sau să restricționați ceea ce fac prin directiva Opțiuni.

Iată câteva valori ale Opțiunilor pe care le puteți utiliza:

  • Opțiuni Toate
  • Opțiunile includ NOEXEC
  • Opțiuni - Include
  • Opțiuni -ExecCGI
  • Opțiuni -Include -ExecCGI
  • Opțiuni MultiViews

Aveți grijă de serverul dvs. Apache

În efortul de a întări securitatea site-ului dvs., acordați o atenție deosebită serverului dvs. Apache. Probleme precum configurarea greșită a serverului și lăsarea setărilor implicite în loc vă pot pune în pericol site-ul la fel de mult ca un nucleu neactualizat sau practici de codare PHP nesigure.

Vrei să dai feedback-ul tău sau să te alături conversației?Adaugă comentariile tale pe Twitter.