Ghid de Îndreptare și Securitate pentru Web Server Apache

Un ghid practic pentru securizarea și întărirea serverului HTTP Apache.


Serverul Web este o parte crucială a aplicațiilor bazate pe web. Apache Web Server este adesea plasat la marginea rețelei, astfel încât devine unul dintre cele mai vulnerabile servicii de atac.

Dacă configurația implicită furnizează informații mult mai sensibile, care ar putea ajuta hackerul să se pregătească pentru un atac pentru aplicații. Majoritatea atacurilor de aplicații web sunt prin atacuri XSS, Info Leakage, Management Session și SQL Injection, care se datorează codului de programare slab și eșecului de igienizare a infrastructurii de aplicații web..

Cercetări interesante de Tehnologii pozitive dezvăluie, 52% din aplicația scanată prezintă vulnerabilități ridicate.

În acest articol, voi vorbi despre unele dintre cele mai bune practici pentru securizarea serverului HTTP Apache pe platforma Linux.

Următoarele sunt testate pe versiunea Apache 2.4.x.

  • Aceasta presupune că ați instalat Apache pe platforma UNIX. Dacă nu, puteți parcurge ghidul de instalare.
  • Voi numi directorul de instalare Apache / opt / apache ca $ Web_Server în acest ghid.
  • Vi se recomandă să faceți o copie de rezervă a fișierului de configurare existent înainte de orice modificare.

Public

Acest lucru este conceput pentru Administrator Middleware, Asistență pentru Aplicații, Analist de Sistem sau pentru orice persoană care lucrează sau dorește să învețe Îndurări & Orientări de securitate.

Cunoașterea corectă a serverului web Apache & Comanda UNIX este obligatorie.

notițe

Aveți nevoie de un instrument pentru a examina anteturile HTTP pentru o parte din verificarea implementării. Există două modalități de a face acest lucru.

  1. Utilizați instrumentele de dezvoltator inbuilt pentru browser pentru a inspecta anteturile HTTP. De obicei, este în fila Rețea
  2. Folosiți instrumentul de verificare a antetului de răspuns HTTP online

Eliminați Banner de versiuni de server

Aș spune că acesta este unul dintre primele lucruri care trebuie luate în considerare, deoarece nu doriți să expuneți ce versiune a serverului web utilizați. Expunerea versiunii înseamnă că ajutați hackerul să accelereze procesul de recunoaștere.

Configurația implicită va expune versiunea Apache și tipul de sistem de operare, așa cum se arată mai jos.

  • Accesați folderul $ Web_Server / conf
  • Modificați httpd.conf utilizând editorul vi
  • Adăugați următoarea directivă și salvați httpd.conf

ServerTokens Prod
ServerSignature Off

  • Reporniți apache

ServerSignature va elimina informațiile de versiune din pagina generată de Apache.

ServerTokens va schimba antetul numai la producție, adică Apache

După cum puteți vedea mai jos, versiunea & Informațiile despre sistemul de operare au dispărut.

Dezactivați lista browserului de director

Dezactivați listarea directoarelor într-un browser, astfel încât vizitatorul să nu vadă ce sunt toate fișierele și folderele pe care le aveți sub root sau subdirector.

Să testăm cum arată în setările implicite.

  • Accesați directorul $ Web_Server / htdocs
  • Creați un folder și câteva fișiere în interiorul acestuia

# test mkdir
# atinge salut
# atingere salut

Acum, încercăm să accesăm Apache http: // localhost / test

După cum ați putut vedea, dezvăluie toate fișierele / dosarele pe care le aveți și sunt sigur că nu doriți să expuneți asta.

  • Accesați directorul $ Web_Server / conf
  •  Deschide httpd.conf folosind vi
  •  Căutați directorul și schimbați Directiva Opțiuni în Nimeni sau –Indexe

Opțiuni -Indexe

(sau)

Opțiuni Niciuna

  • Reporniți Apache

Notă: dacă aveți mai multe directive în mediul dvs., ar trebui să luați în considerare să faceți același lucru pentru toți.

Acum, încercăm să accesăm Apache http: // localhost / test

După cum ați putut vedea, afișează o eroare interzisă în loc de afișarea listării folderului de testare.

ETAG

Permite atacatorilor de la distanță să obțină informații sensibile, cum ar fi numărul de inode, granița MIME și procesul copil prin antetul Etag..

Pentru a preveni această vulnerabilitate, să o implementăm ca mai jos. Acest lucru este necesar pentru a repara conformitatea PCI.

  • Accesați directorul $ Web_Server / conf
  • Adăugați următoarea directivă și salvați httpd.conf

FileETag Niciuna

  • Reporniți apache

Rulați Apache dintr-un cont fără privilegii

O instalare implicită rulează ca nimeni sau demon. Utilizarea unui utilizator separat fără privilegii pentru Apache este bună.

Ideea de aici este de a proteja alte servicii care funcționează în cazul oricărei gauri de securitate.

  • Creați un utilizator și un grup numit apache

# groupadd apache
# useradd –G apache apache

  • Schimbați proprietatea directoarelor de instalare apache la un utilizator nou privilegiat creat

# chown –R apache: apache / opt / apache

  •  Accesați $ Web_Server / conf
  •  Modificați httpd.conf folosind vi
  •  Căutați un utilizator & Directiva de grup și schimbarea ca apache a contului ne privilegiat

Utilizator apache
Grupa apache

  •  Salvați httpd.conf
  •  Reporniți Apache

grep pentru rularea procesului http și asigurați-vă că acesta rulează cu un utilizator apache

# ps –ef | grep http

Ar trebui să vedeți că un proces se execută cu root. Acest lucru se datorează faptului că Apache ascultă portul 80 și trebuie început cu root.

Protejați permisiunea directorului binar și de configurare

În mod implicit, permisiunea pentru binare și configurare este 755, ceea ce înseamnă că orice utilizator de pe un server poate vizualiza configurația. Puteți dezactiva un alt utilizator să intre în folderul conf și bin.

  • Accesați directorul $ Web_Server
  • Schimbați permisiunea folderului bin și conf

# chmod –R 750 bin conf

Protecția setărilor sistemului

Într-o instalare implicită, utilizatorii pot înlocui configurația apache folosind .htaccess. Dacă doriți să opriți utilizatorii să schimbe setările serverului dvs. apache, puteți adăuga AllowOverride în Nimeni, așa cum se arată mai jos.

Acest lucru trebuie făcut la nivelul rădăcinii.

  • Accesați directorul $ Web_Server / conf
  •  Deschide httpd.conf folosind vi
  •  Căutați directorul la un nivel rădăcină

Opțiuni -Indexe
AllowOverride None

  •  Salvați httpd.conf
  •  Reporniți Apache

Metode de solicitare HTTP

Protocolul HTTP 1.1 acceptă multe metode de solicitare care nu pot fi necesare și unele dintre ele prezintă un risc potențial.

De obicei este posibil să aveți nevoie de metode de solicitare GET, HEAD, POST într-o aplicație web, care poate fi configurată în directiva respectivă.

Suport de configurare implicit OPȚIUNI, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT metoda în protocolul HTTP 1.1.

  •  Accesați directorul $ Web_Server / conf
  •  Deschide httpd.conf folosind vi
  • Căutați directorul și adăugați următoarele

negă din toate

  • Reporniți Apache

Dezactivați Cererea de urmărire HTTP

În mod implicit, metoda Trace este activată pe serverul web Apache.

Dacă aveți activat acest lucru, puteți permite atacul de urmărire încrucișată a site-ului și poate oferi o opțiune unui hacker pentru a fura informații despre cookie-uri. Să vedem cum arată în configurația implicită.

  •  Efectuați un IP de server web telnet cu port de ascultare
  •  Efectuați o solicitare TRACE așa cum se arată mai jos

#telnet localhost 80
Încercarea 127.0.0.1…
Conectat la localhost.
Personajul de evacuare este ‘^]’.
TRACE / HTTP / 1.1 Host: test
HTTP / 1.1 200 OK
Data: Sat, 31 august 2013 02:13:24 GMT
Server: Apache
Transfer-codare: decupat
Tip de conținut: mesaj / http 20
TRACE / HTTP / 1.1
Realizator: test
0
Conexiune închisă de către gazda externă.
#

După cum ați putut vedea în cererea TRACE de mai sus, mi-a răspuns întrebării. Să o dezactivăm și să o testăm.

  •  Accesați directorul $ Web_Server / conf
  • Adăugați următoarea directivă și salvați httpd.conf

TraceEnable off

  •  Reporniți apache

Efectuați un IP de server web telnet cu port de ascultare și faceți o solicitare TRACE așa cum se arată mai jos

#telnet localhost 80
Încercarea 127.0.0.1…
Conectat la localhost.
Personajul de evacuare este ‘^]’.
TRACE / HTTP / 1.1 Host: test
Metoda HTTP / 1.1 405 nu este permisă
Data: Sat, 31 Aug 2013 02:18:27 GMT
Server: Apache Permit: Lungime conținut: 223Content-Type: text / html; charset = iso-8859-1
405 Metoda nu este permisă

metoda nepermisa

Metoda solicitată TRACE nu este permisă pentru URL /.

Conexiune închisă de către gazda externă.
#

După cum ați putut vedea în cererea TRACE de mai sus, aceasta a blocat solicitarea mea cu metoda HTTP 405 nepermisă.

Acum, acest server web nu permite solicitarea TRACE și ajută la blocarea atacului de urmărire pe site.

Setați modul cookie cu steagul HttpOnly și Secure

Puteți atenua majoritatea atacului comun de scripturi de site-uri folosind indicatorul HttpOnly și Secure într-un cookie. Fără să aveți HttpOnly și Secure, este posibil să furați sau să manipulați sesiunea și cookie-urile aplicației web și este periculos.

  •  Asigurați-vă că mod_headers.so este activat în httpd.conf
  •  Accesați directorul $ Web_Server / conf
  •  Adăugați următoarea directivă și salvați httpd.conf

Editarea antetului Set-Cookie ^ (. *) $ 1; HttpOnly; Secure

  •  Reporniți apache

Atacul cu clicuri

Clickjacking este o vulnerabilitate cunoscută a aplicațiilor web.

  •  Asigurați-vă că mod_headers.so este activat în httpd.conf
  •  Accesați directorul $ Web_Server / conf
  •  Adăugați următoarea directivă și salvați httpd.conf

Antetul adaugă întotdeauna X-Frame Options SAMEORIGIN

  •  Reporniți apache

Opțiunile X-Frame acceptă și alte două opțiuni pe care le-am explicat aici.

Partea serverului include

Server Side Include (SSI) prezintă riscul de a crește încărcarea pe server. Dacă ați partajat aplicații web de mediu și trafic intens, ar trebui să luați în considerare dezactivarea SSI adăugând Include în Directiva Opțiuni.

Atacul SSI permite exploatarea unei aplicații web prin injectarea de scripturi în pagini HTML sau executarea codurilor de la distanță.

  • Accesați directorul $ Web_Server / conf
  •  Deschide httpd.conf folosind vi
  •  Căutați directorul și adăugați Include în Directiva Opțiuni

Opțiuni – Indici-Include
Comanda permite, refuză Totul de la toate

  • Reporniți Apache

Notă: dacă aveți mai multe directive în mediul dvs., ar trebui să luați în considerare să faceți același lucru pentru toți.

Protecție X-XSS

Protecția Cross Site Scripting (XSS) poate fi ocolită în multe browsere. Puteți aplica această protecție pentru o aplicație web dacă utilizatorul a fost dezactivat. Acest lucru este utilizat de majoritatea companiilor web gigant precum Facebook, Twitter, Google, etc.

  • Accesați directorul $ Web_Server / conf
  • Deschide httpd.conf folosind vi și adaugă următoarea directivă antet

Set antet X-XSS-Protection "1; mode = bloc"

  •  Reporniți Apache

După cum vedeți, XSS-Protection este injectat în antetul de răspuns.

Dezactivați protocolul HTTP 1.0

Când vorbim despre securitate, ar trebui să protejăm cât putem. Prin urmare, de ce folosim versiunea HTTP mai veche a protocolului, să le dezactivăm și ele?

HTTP 1.0 are o slăbiciune în materie de securitate legată de deturnarea sesiunilor. Putem dezactiva acest lucru folosind modulul mod_rewrite.

  • Asigurați-vă că încărcați modulul mod_rewrite în fișierul httpd.conf
  •  Activați Directiva RewriteEngine după cum urmează și adăugați Condiție de rescriere pentru a permite doar HTTP 1.1

ReescrieEngine Activat
RewriteCond% {THE_REQUEST}! HTTP / 1.1 $
RewriteRule. * – [F]

Configurarea valorii timeout

În mod implicit, valoarea de expirare a Apache este de 300 de secunde, ceea ce poate fi o victimă a atacului Slow Loris și a DoS. Pentru a atenua acest lucru, puteți scădea valoarea de timp până la 60 de secunde.

  • Accesați directorul $ Web_Server / conf
  • Deschide httpd.conf folosind vi
  •  Adăugați următoarele în httpd.conf

Timeout 60

SSL

Având SSL este un nivel suplimentar de securitate pe care îl adăugați în Aplicația Web. Cu toate acestea, configurația SSL implicită duce la anumite vulnerabilități și ar trebui să luați în considerare modificarea acestor configurații.

Cheie SSL

Încălcarea cheii SSL este grea, dar nu imposibilă. Este doar o problemă de putere și timp de calcul.

După cum știați, puteți utiliza un computer din era din 2009 care s-a fisurat timp de aproximativ 73 de zile inginerul invers o cheie de 512 biți.

Deci, cu cât aveți lungimea de cheie mai mare, cu atât devine mai complicată să rupeți cheia SSL. Majoritatea companiilor web gigant folosesc cheie 2048 biți, așa cum este mai jos, de ce nu suntem noi?

  •  Outlook.com
  •  Microsoft.com
  •   Live.com
  •  Skype.com
  •  Apple.com
  •  Yahoo.com
  •  Bing.com
  •  Hotmail.com
  •  Twitter.com

Puteți utiliza OpenSSL pentru a genera CSR cu 2048 biți ca mai jos.

openssl req -out geekflare.csr -newkey rsa: 2048 -nodes -keyout geekflare.key

Va genera un CSR pe care va trebui să-l trimiteți unui autoritate certificată să-l semneze. După ce primiți fișierul de certificat semnat, le puteți adăuga în fișierul httpd-ssl.conf

SSLCertificatFile #Certificat semnat de autoritate
SSLCertificatChainFile #Certificat semnatar dat de autoritate
SSLCertificatKeyFile fișier #Key pe care l-ați generat mai sus

  • Reporniți serverul web Apache și încercați să accesați URL-ul cu https

SSL Cipher

SSL Cipher este un algoritm de criptare, care este utilizat ca cheie între două computere de pe Internet. Criptarea datelor este procesul de conversie a textului simplu în coduri secrete codate.

Se bazează pe configurația SSL Cipher a serverului dvs. web, criptarea datelor va avea loc. Prin urmare, este important să configurați SSL Cipher, care este mai puternic și nu este vulnerabil.

  • Accesați folderul $ Web_Server / conf / extra
  •  Modificați directiva SSLCipherSuite în httpd-ssl.conf ca mai jos pentru a accepta doar algoritmi de criptare mai mari

SSLCipherSuite HIGH:! MEDIUM:! ANULL:! MD5:! RC4

  •  Salvați fișierul de configurare și reporniți serverul apache

Notă: dacă aveți multe cifre slabe în raportul dvs. de audit SSL, le puteți respinge adăugând rapid! la inceput.

Dezactivează SSL v2 & v3

SSL v2 & v3 are multe defecte de securitate și dacă lucrați la testul de penetrare sau conformitatea PCI, atunci trebuie să închideți constatarea securității pentru a dezactiva SSL v2 / v3.

Orice comunicare SSL v2 / v3 poate fi vulnerabilă la un atac Man-in-the-Middle care ar putea permite modificarea sau dezvăluirea datelor.

Să implementăm serverul web apache pentru a accepta doar cele mai recente TLS și respinge solicitarea de conectare SSL v2 / v3.

  • Accesați folderul $ Web_Server / conf / extra
  • Modificați directiva SSLProtocol în httpd-ssl.conf ca mai jos pentru a accepta doar TLS 1.2+

SSLProtocol –ALL + TLSv1.2

După ce ați terminat cu configurarea SSL, este bine să vă testați aplicația web cu instrumentul de certificare SSL / TLS online pentru a găsi orice eroare de configurare..

Securitate Mod

Mod Security este un Firewall pentru aplicații web open-source, pe care îl puteți folosi cu Apache.

Vine ca un modul pe care trebuie să-l compilezi și să-l instalezi. Dacă nu vă puteți permite un firewall comercial pentru aplicații web, aceasta ar fi o alegere excelentă pentru a merge pentru el.

Pentru a oferi protecție generică a aplicațiilor web, regulile de bază utilizează următoarele tehnici:

  • Protecție HTTP – detectarea încălcărilor protocolului HTTP și a unei politici de utilizare definite local
  • Căutări de listă neagră în timp real – utilizează reputația IP a unei terțe părți
  • Detectare de programe malware bazate pe web – identifică conținut web rău intenționat prin verificarea API-ului de navigare sigură Google.
  • Protecții de refuz de serviciu HTTP – apărare împotriva inundațiilor HTTP și atacuri DoS HTTP lente.
  • Protecția comună împotriva atacurilor web – detectarea unui atac comun de securitate al aplicațiilor web
  • Detectarea automatizării – detectarea de roboți, crawlere, scanere și o altă activitate de suprafață dăunătoare
  • Integrare cu scanarea AV pentru încărcări de fișiere – identifică fișierele rău încărcate prin aplicația web.
  • Urmărirea datelor sensibile – urmărește utilizarea cardului de credit și blochează scurgerile.
  • Protecția troianilor – Detectarea accesului la caii troieni.
  • Identificarea defectelor aplicației – alerte privind configurațiile greșite ale aplicației.
  • Detectarea și ascunderea erorilor – disimularea mesajelor de eroare trimise de server.

Descarca & Instalare

Următoarele condiții preliminare trebuie instalate pe serverul unde doriți să utilizați Mod Security cu Apache. Dacă oricare dintre acestea nu există, atunci compilarea Mod Security va eșua. Puteți utiliza yum install pe Linux sau Centos pentru a instala aceste pachete.

  • apache 2.x sau mai mare
  • pachet libpcre
  •  pachet libxml2
  • pachet liblua
  • pachetul libcurl
  •  pachetul libapr și libapr-util
  •  modulul mod_unique_id inclus în serverul web Apache

Acum, să descărcăm cea mai recentă versiune stabilă a Mod Security 2.7.5 din aici

  • Transferați fișierul descărcat în / opt / apache
  • Extrageți modsecurity-apache_2.7.5.tar.gz

# gunzip –c modsecurity-apache_2.7.5.tar.gz | gudron xvf –

  • Accesați folderul extras modsecurity-apache_2.7.5

# cd modsecurity-apache_2.7.5

  • Rulați scriptul de configurare, incluzând calea apxs către Apache existent

# ./configure – cu-apxs = / opt / apache / bin / apxs

  • Compila & instalați cu make script

# face
# face instalare

  • Odată ce instalarea este terminată, veți vedea mod_security2.so în folderul de module sub / opt / apache

Acum se încheie, ați instalat modulul Mod Security pe serverul web Apache existent.

configurație

Pentru a utiliza funcția de securitate Mod cu Apache, trebuie să încărcăm modul de securitate mod în httpd.conf. Modulul mod_unique_id este pre-necesar pentru Mod Security.

Acest modul oferă o variabilă de mediu cu un identificator unic pentru fiecare solicitare, care este urmărită și utilizată de Mod Security.

  • Adăugați urmând o linie pentru a încărca modulul pentru Mod Security în httpd.conf și salvați fișierul de configurare

LoadModule unique_id_module modules / mod_unique_id.so
LoadModule security2_module modules / mod_security2.so

  •  Reporniți serverul web apache

Mod Security este acum instalat!

Următorul lucru pe care trebuie să-l faceți este să instalați regula de bază a Mod Security pentru a profita din plin de funcția sa.

Cea mai recentă regulă de bază poate fi descărcată de la următorul link, care este gratuit. https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master

  • Copiați zipul de regulă de bază descărcat în folderul / opt / apache / conf
  • Decuplați fișierul cu reguli de bază
  • Poate doriți să redenumiți folderul în ceva scurt și ușor de reținut. În acest exemplu, voi redenumi la crs.
  • Accesați folderul crs și redenumiți modsecurity_crs10_setup.conf.exemple la modsecurity_crs10_setup.conf

Acum, să permițăm aceste reguli pentru ca acesta să funcționeze cu serverul web Apache.

  •  Adăugați următoarele în httpd.conf

Include conf / crs / modsecurity_crs_10_setup.confInclude conf / crs / base_rules / *. Conf

În configurația de mai sus, încărcăm fișierul principal de configurare Mod Security Modsecurity_crs_10_setup.conf și regulile de bază base_rules / *. Conf furnizate de Reguli de securitate Mod Security pentru a proteja aplicațiile web.

  •  Reporniți serverul web apache

Ați configurat cu succes Mod Security cu Apache!

Foarte bine. Acum, serverul web Apache este protejat de firewall-ul pentru aplicații web Mod Security.

Noțiuni de bază

Să începem cu unele dintre configurațiile critice din Mod Security pentru a se întări & aplicații web sigure.

În această secțiune, vom face toate modificările de configurare în /opt/apache/conf/crs/modsecurity_crs_10_setup.conf.

Vom referi /opt/apache/conf/crs/modsecurity_crs_10_setup.conf ca setup.conf în această secțiune, de exemplu..

Este important să înțelegem care sunt regulile OWASP oferite gratuit. Există două tipuri de reguli furnizate de OWASP.

Reguli de bază – aceste reguli sunt puternic testate și probabil raportul fals al alarmelor este mai mic.

Reguli experimentale – aceste reguli sunt destinate unui scop experimental și este posibil să aveți o alarmă falsă ridicată. Este important să configurați, testați și implementați în UAT înainte de a le utiliza într-un mediu de producție.

Reguli opționale – este posibil ca aceste reguli opționale să nu fie adecvate întregului mediu. Pe baza cerinței dvs. le puteți utiliza.

Dacă sunteți în căutarea CSRF, urmărirea utilizatorului, deturnarea sesiunii etc., atunci puteți lua în considerare utilizarea unor reguli opționale. Avem regulile de bază, opționale și experimentale după extragerea fișierului zip crs descărcat din pagina de descărcare OWASP.

Aceste fișiere de configurare a regulilor sunt disponibile în folderul crs / base_rules, crs / optional_rules și crs / experimental_rules. Să ne familiarizăm cu unele dintre regulile de bază.

  • modsecurity_crs_20_protocol_violations.conf: Această regulă protejează împotriva vulnerabilităților Protocolului, cum ar fi împărțirea răspunsurilor, contrabandă cu cerere, folosind protocolul nepermis (HTTP 1.0).
  • modsecurity_crs_21_protocol_anomalies.conf: Acesta este de protejat de o solicitare, care lipsește cu Host, Accept, User-Agent în antet..
  • modsecurity_crs_23_request_limits.conf: Această regulă depinde de aplicația specifică, cum ar fi dimensiunea solicitării, dimensiunea încărcării, lungimea unui parametru, etc..
  • modsecurity_crs_30_http_policy.conf: Aceasta este pentru a configura și proteja metoda permisă sau interzisă precum CONNECT, TRACE, PUT, DELETE, etc..
  • modsecurity_crs_35_bad_robots.conf: detectează roboți rău intenționat
  • modsecurity_crs_40_generic_attacks.conf: Acesta este pentru a vă proteja de injecția de comandă a sistemului de operare, includerea de fișiere la distanță, etc..
  • modsecurity_crs_41_sql_injection_attacks.conf: Această regulă pentru a proteja cererea de injectare SQL și oarbă SQL.
  • modsecurity_crs_41_xss_attacks.conf: Protecție împotriva cererii de scripturi între site-uri.
  • modsecurity_crs_42_tight_security.conf: Detecție și protecție traversare director.
  • modsecurity_crs_45_trojans.conf: Această regulă pentru a detecta ieșirea generică de gestionare a fișierelor, încărcarea paginii backdoor HTTP, semnătură cunoscută.
  • modsecurity_crs_47_common_exceptions.conf: Acesta este utilizat ca mecanism de excepție pentru a elimina pozitive false false care pot fi întâlnite suge ca conexiune manechin intern Apache, pinger SSL, etc..

Logare

Jurnalul este unul dintre primele lucruri de configurat, astfel încât să puteți avea jurnalele create pentru funcționarea Mod Security. Există două tipuri de înregistrare disponibile; debug & Jurnal de audit.

Jurnalul de depanare: aceasta înseamnă duplicarea mesajelor de eroare Apache, avertizare și notificare din jurnalul de erori.

Jurnalul de audit: este să scrieți jurnalele de tranzacții marcate de regula de securitate Mod Mod Security vă oferă flexibilitatea de a configura Audit, Debug sau ambele înregistrări.

În mod implicit, configurația va scrie ambele jurnale. Cu toate acestea, puteți schimba în funcție de cerința dvs. Jurnalul este controlat în Directiva SecDefaultAction. Să ne uităm la configurația implicită de înregistrare în setup.conf

SecDefaultAction „faza: 1, negare, logare”

Pentru a înregistra Debug, jurnalul de audit – utilizați „jurnalul” Pentru a înregistra doar jurnalul de audit – utilizați „nolog, auditlog” Pentru a înregistra doar jurnalul de debug – utilizați „jurnal, noauditlog” Puteți specifica locația Jurnalului de audit care va fi stocată, care este controlată de SecAuditLog directivă.

Să scriem logarea de audit în /opt/apache/logs/modsec_audit.log adăugând după cum se arată mai jos.

  • Adăugați SecAuditLog directivă în setup.conf și reporniți Apache Web Server

SecAuditLog /opt/apache/logs/modsec_audit.log

  • După repornire, ar trebui să vedeți generarea modsec_audit.log

Activați motorul cu reguli

În mod implicit, regula motorului este oprită, ceea ce înseamnă că dacă nu activați Rule Engine, nu utilizați toate avantajele securității modului.

Activarea sau dezactivarea Rule Engine este controlată de Directiva SecRuleEngine.

  • Adăugați Directiva SecRuleEngine în setup.conf și reporniți Apache Web Server

SecRuleEngine On

Există trei valori pentru SecRuleEngine:

  • Pornit – pentru a activa motorul de regulă
  • Dezactivat – pentru a dezactiva Rule Engine
  • DetectionOnly – activează Rule Engine, dar nu execută niciodată acțiuni precum blocarea, refuzul, eliminarea, permisiunea, proxy sau redirecționarea

Odată ce Rule Engine este pornit – Mod Security este gata de protecție cu unele dintre tipurile comune de atac.

Protecție comună de tip atac

Acum serverul web este gata să protejeze cu tipuri de atac obișnuite, cum ar fi XSS, SQL Injection, Protocolul de încălcare, etc., deoarece am instalat Core Rule și activat Rule Engine. Să testăm câteva dintre ele.

XSS Attack

  •  Deschide Firefox și accesează aplicația și pune eticheta la sfârșit sau URL
  •  Monitorizați modsec_audit.log în folderul apache / jurnale

Veți observa o solicitare de blocuri Mod Security, deoarece conține o etichetă care este rădăcina atacului XSS.

Directory Attvers Traversal: – Atacurile de traversare a directorilor pot crea o mulțime de daune profitând de aceste vulnerabilități și de fișierele legate de sistemul de acces. Ex – / etc / passwd, .htaccess, etc.

  •  Deschideți Firefox și accesați aplicația dvs. cu traversarea directorului
  •  Monitorizați modsec_audit.log în folderul apache / jurnale

http: // localhost / ../…/boot

  • Veți observa o solicitare de blocuri Mod Security, deoarece conține traversare de director.

Schimbă Banner de server

Mai devreme în acest ghid, ați aflat cum să eliminați tipul Apache și sistemul de operare, ajutorul versiunii din Directiva ServerTokens.

Haideți să facem un pas înainte, cum să păstrați numele serverului orice doriți? Este posibil cu Directiva SecServerSignature din Mod Security. Vedeți că este interesant.

Notă: pentru a utiliza Mod Security pentru a manipula Banner Server dintr-un antet, trebuie să setați ServerTokesn la Complet în httpd.conf al serverului web Apache.

  • Adăugați Directiva SecServerSignature cu numele de server dorit în setup.conf și reporniți Apache Web Server

SecServerSignature YourServerName

Ex:

[/ opt / apache / conf / crs] #grep SecServer modsecurity_crs_10_setup.conf
SecServerSignature geekflare.com
[/ opt / apache / conf / crs] #

Configurare generală

Haideți să vedem unele configurații generale ca fiind cele mai bune practici.

Configurați Ascultați

Când aveți mai multe interfețe și IP pe un singur server, este recomandat să aveți o directivă de ascultare configurată cu IP absolut și număr de port.

Când lăsați configurația apache pentru a asculta toate IP-urile cu un număr de port, poate crea problema la trimiterea solicitării HTTP către un alt server web. Acest lucru este destul de comun în mediul comun.

  • Configurează directiva Listen în httpd.conf cu IP și port absolut, ca exemplu prezentat mai jos

Ascultă 10.10.10.1:80

Accesare jurnal

Este esențial să configurați corect jurnalul de acces pe serverul dvs. web. Unul dintre parametrii importanți de capturat în jurnal ar fi timpul necesar pentru a răspunde cererii, SESIUNI ID.

În mod implicit, Apache nu este configurat pentru a capta aceste date. Trebuie să le configurați manual după cum urmează.

  • Pentru a surprinde timpul necesar pentru a servi cererea și ID-ul SESIUNII într-un jurnal de acces
  •  Adăugați% T & % sessionID în httpd.conf sub directiva LogFormat

LogFormat "% h% l% u% t "% {Sessionid} C" "% r" %>s% b% T" uzual

Vă puteți referi http://httpd.apache.org/docs/2.2/mod/mod_log_config.html pentru o listă completă de parametri suportați în directiva LogFormat din Serverul Apache.

Dezactivare Încărcarea modulelor nedorite

Dacă ați compilat și instalat cu toate modulele, atunci există șanse mari să aveți multe module încărcate în Apache, ceea ce este posibil să nu fie necesar.

Cele mai bune practici sunt să configurați Apache cu modulele necesare în aplicațiile dvs. web. Următoarele module au probleme de securitate și s-ar putea să fiți interesat să dezactivați în httpd.conf Apache Web Server.

WebDAV (distribuire și versare distribuită bazate pe Web) Acest modul permite clienților la distanță să manipuleze fișierele pe server și să facă obiectul unor diverse atacuri de refuz de serviciu. Pentru a dezactiva comentariul următor în httpd.conf

#LoadModule dav_module modules / mod_dav.so
#LoadModule dav_fs_module modules / mod_dav_fs.so
#Include conf / extra / httpd-dav.conf

Info Modul Modulul mod_info poate scurge informații sensibile folosind .htaccess odată ce acest modul este încărcat. Pentru a dezactiva comentariul următor în httpd.conf

#LoadModule info_module module / mod_info.so

Referință: acest lucru nu ar fi posibil fără îndrumări de la următorul link:

Deci, acestea au fost unele dintre cele mai bune practici pe care le puteți utiliza pentru a vă asigura serverul web Apache.

Dacă sunteți nou la Apache HTTP, aș recomanda să luați cursul de administrare HTTP Apache.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map