Vodič za utrjevanje in zaščito spletnega strežnika Apache

Praktični vodnik za zaščito in strjevanje Apache HTTP Server.


Spletni strežnik je ključni del spletnih aplikacij. Spletni strežnik Apache je pogosto postavljen na rob omrežja, zato postane ena najranljivejših napadalnih storitev.

Privzeta konfiguracija daje veliko občutljivih informacij, ki lahko pomagajo hekerju, da se pripravi na napad. Večina napadov spletnih aplikacij je prek napadov XSS, Info Leakage, Session Management in SQL Injection, ki so posledica šibkega programskega koda in neuspeha v saniranju infrastrukture spletnih aplikacij.

Zanimiva raziskava avtorja Pozitivne tehnologije razkriva, 52% skenirane aplikacije je imelo veliko ranljivosti.

V tem članku bom govoril o nekaterih najboljših praksah za zaščito strežnika Apache HTTP na platformi Linux.

Sledi preizkus na različici Apache 2.4.x.

  • To pomeni, da ste namestili Apache na platformi UNIX. V nasprotnem primeru lahko preberete navodila za namestitev.
  • V tem priročniku bom poklical namestitveni imenik Apache / opt / apache kot $ Web_Server.
  • Priporočamo, da pred kakršno koli spremembo vzamete varnostno kopijo obstoječe konfiguracijske datoteke.

Občinstvo

Zasnovana je za skrbnika posredniške programske opreme, podpore aplikacij, sistemskega analitika ali vsakogar, ki dela ali se želi naučiti strjevanja & Varnostne smernice.

Pošteno poznavanje spletnega strežnika Apache & Ukaz UNIX je obvezen.

Opombe

Za preverjanje implementacije HTTP glave potrebujete nekaj orodja. Obstajata dva načina.

  1. Uporabite orodja za razvijalce, vgrajena v brskalnik, da preverite glave HTTP. Običajno je na zavihku Omrežje
  2. Uporabite spletno orodje za preverjanje glave odziva HTTP

Odstranite pasico s različico strežnika

Rekel bi, da je to ena izmed prvih stvari, ki jih morate upoštevati, saj ne želite izpostaviti, katero različico spletnega strežnika uporabljate. Izpostavitev različice pomeni, da pomagate hekerju, da pospeši postopek izvidovanja.

Privzeta konfiguracija bo razkrila različico Apache Version in OS, kot je prikazano spodaj.

  • Pojdite v mapo $ Web_Server / conf
  • Spremenite httpd.conf z urejevalnikom vi
  • Dodajte naslednjo direktivo in shranite httpd.conf

ServerTokens Prod
Podpis strežnika izklopljen

  • Znova zaženite apache

ServerSignature bo odstranil podatke o različici s strani, ki jo je ustvaril Apache.

ServerTokens bo spremenil Header samo v proizvodnjo, tj. Apache

Kot lahko vidite spodaj, različica & Podatkov o OS ni več.

Onemogoči seznam brskalnikov imenikov

Onemogoči vnos imenika v brskalniku, tako da obiskovalec ne vidi, kaj vse datoteke in mape imate pod korenskim ali podimenikom.

Preizkusimo, kako je videti v privzetih nastavitvah.

  • Pojdite v imenik $ Web_Server / htdocs
  • Ustvari mapo in nekaj datotek znotraj tega

# mkdir test
# dotik zdravo
# dotik zdravo

Zdaj pa poskusimo dostopati do Apache http: // localhost / test

Kot ste lahko videli, razkrivate vse datoteke / mape, ki jih imate, in prepričan sem, da tega ne želite izpostaviti.

  • Pojdite v imenik $ Web_Server / conf
  •  Odprite httpd.conf z vi
  •  Poiščite imenik in spremenite direktivo Možnosti v None ali –Indexes

Možnosti -Indexes

(ali)

Možnosti ni

  • Znova zaženite Apache

Opomba: če imate v svojem okolju več direktiv Directory, bi morali razmisliti, da bi enako storili za vse.

Zdaj pa poskusimo dostopati do Apache http: // localhost / test

Kot lahko vidite, prikaže prepovedano napako, namesto da prikaže seznam testnih map.

Etag

Oddaljenim napadalcem omogoča pridobivanje občutljivih informacij, kot so številka inode, večstranska meja MIME in nadrejeni postopek prek glave Etag.

Če želite preprečiti to ranljivost, jo izvedite tako, kot je spodaj. To je potrebno za določitev skladnosti s PCI.

  • Pojdite v imenik $ Web_Server / conf
  • Dodajte naslednjo direktivo in shranite httpd.conf

FileETag Jih ni

  • Znova zaženite apache

Zaženite Apache iz ne privilegiranega računa

Privzeta namestitev deluje kot nihče ali demon. Uporaba posebnega neprivilegiranega uporabnika za Apache je dobra.

Ideja je zaščititi druge storitve, ki delujejo v primeru kakršne koli varnostne luknje.

  • Ustvarite uporabnika in skupino, imenovano apache

# groupadd apache
# useradd –G apache apache

  • Spremenite lastništvo imenika namestitve apache na novo ustvarjenega neuvilegiranega uporabnika

# chown –R apache: apache / opt / apache

  •  Pojdite na $ Web_Server / conf
  •  Spremenite httpd.conf z vi
  •  Poišči uporabnika & Direktiva o skupinah in se spremenite kot neprivilegirani račun apache

Uporabniški apache
Skupinski apache

  •  Shranite httpd.conf
  •  Znova zaženite Apache

grep za izvajanje postopka http in se prepričajte, da se izvaja z uporabnikom apache

# ps –ef | grep http

Videti bi morali, da se en postopek izvaja s root. Zato Apache posluša na vratih 80 in ga je treba začeti s root.

Zaščitite dovoljenje binarnega in konfiguracijskega imenika

Dovoljenje za binarne in konfiguracijske nastavitve je 755, kar pomeni, da si lahko vsak uporabnik na strežniku ogleda konfiguracijo. Drugemu uporabniku lahko onemogočite vstop v mapo conf in bin.

  • Pojdite v imenik $ Web_Server
  • Spremenite dovoljenje mape bin and conf

# chmod –R 750 zabojnikov

Zaščita sistemskih nastavitev

V privzeti namestitvi lahko uporabniki preglasijo konfiguracijo apache z uporabo .htaccess. Če želite uporabnikom preprečiti spreminjanje nastavitev vašega strežnika apache, lahko AllowOverride dodate v None, kot je prikazano spodaj.

To je treba storiti na ravni korenin.

  • Pojdite v imenik $ Web_Server / conf
  •  Odprite httpd.conf z vi
  •  Iščite imenik na korenski ravni

Možnosti -Indexes
DovoliOverride Brez

  •  Shranite httpd.conf
  •  Znova zaženite Apache

Metode zahteve HTTP

Protokol HTTP 1.1 podpira številne metode zahteve, ki morda niso potrebne in nekatere od njih predstavljajo potencialno tveganje.

Običajno boste morda potrebovali metode GET, HEAD, POST v spletni aplikaciji, ki jih je mogoče konfigurirati v ustrezni direktivi Directory.

Privzeta podpora za konfiguracijo OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT v protokolu HTTP 1.1.

  •  Pojdite v imenik $ Web_Server / conf
  •  Odprite httpd.conf z vi
  • Poiščite Imenik in dodajte naslednje

zanikati od vseh

  • Znova zaženite Apache

Onemogoči zahtevo HTTP za sledenje

Na spletni strežnik Apache je privzeto omogočena metoda Trace.

Če je to omogočeno, lahko dovolite napad med sledenjem spletnemu mestu in potencialnemu hekerju omogoči krajo podatkov o piškotkih. Poglejmo, kako je videti v privzeti konfiguraciji.

  •  Opravite IP spletnega strežnika telnet s poslušalnimi vrati
  •  Vnesite zahtevo TRACE, kot je prikazano spodaj

#telnet localhost 80
Poskus 127.0.0.1…
Povezana z lokalnim gostiteljem.
Znak za izhod v sili je ‘^]’.
TRACE / HTTP / 1.1 Gostitelj: test
HTTP / 1.1 200 V redu
Datum: Sat, 31. avgust 2013 02:13:24 GMT
Strežnik: Apache
Prenos-kodiranje: zbran
Vrsta vsebine: sporočilo / http 20
TRACE / HTTP / 1.1
Gostitelj: test
0
Povezava zaprta s tujim gostiteljem.
#

Kot lahko vidite v zgornji prošnji TRACE, je odgovoril na mojo poizvedbo. Onemogočimo jo in preizkusimo.

  •  Pojdite v imenik $ Web_Server / conf
  • Dodajte naslednjo direktivo in shranite httpd.conf

TraceEnable off

  •  Znova zaženite apache

Opravite IP spletnega strežnika telnet s poslušalnimi vrati in vnesite zahtevo TRACE, kot je prikazano spodaj

#telnet localhost 80
Poskus 127.0.0.1…
Povezana z lokalnim gostiteljem.
Znak za izhod v sili je ‘^]’.
TRACE / HTTP / 1.1 Gostitelj: test
HTTP / 1.1 405 Metoda ni dovoljena
Datum: Sat, 31. avgust 2013 02:18:27 GMT
Strežnik: Apache Allow: Dolžina vsebine: 223Content-Type: text / html; charset = iso-8859-1
405 Metoda ni dovoljena

Metoda ni dovoljena

Zahtevani način TRACE ni dovoljen za URL /.

Povezava zaprta s tujim gostiteljem.
#

Kot lahko vidite v zgornji zahtevi TRACE, je mojo zahtevo blokiral z metodo HTTP 405 ni dovoljen.

Zdaj ta spletni strežnik ne dovoljuje zahteve TRACE in pomaga pri preprečevanju napada med sledenjem.

Nastavite piškotek z zastavico HttpOnly in Secure

Večino običajnega napada skriptnega skripta lahko omilite tako, da uporabite piškoto HttpOnly in Secure v piškotku. Brez HttpOnly in Secure je mogoče ukrasti ali manipulirati sejo spletne aplikacije in piškotke, kar je nevarno.

  •  Prepričajte se, da je mod_headers.so v vašem httpd.conf omogočen
  •  Pojdite v imenik $ Web_Server / conf
  •  Dodajte naslednjo direktivo in shranite httpd.conf

Urejanje glave Set-Cookie ^ (. *) $ 1 $; HttpOnly; Secure

  •  Znova zaženite apache

Napad s klikanjem

Clickjacking je znana ranljivost spletnih aplikacij.

  •  Prepričajte se, da je mod_headers.so v vašem httpd.conf omogočen
  •  Pojdite v imenik $ Web_Server / conf
  •  Dodajte naslednjo direktivo in shranite httpd.conf

Glava vedno priloži možnosti X-Frame SAMEORIGIN

  •  Znova zaženite apache

Možnosti X-Frame podpirajo še dve možnosti, ki sem ju razložil tukaj.

Side Server Vključi

Server Side Include (SSI) ima tveganje za povečanje nalaganja na strežniku. Če imate spletne aplikacije za okolje in velik promet, razmislite o onemogočanju SSI z dodajanjem direktive Vključi v možnosti.

Napad SSI omogoča izkoriščanje spletne aplikacije z vbrizgavanjem skript v HTML strani ali izvajanjem kod na daljavo.

  • Pojdite v imenik $ Web_Server / conf
  •  Odprite httpd.conf z vi
  •  Poiščite Imenik in dodajte Vključi v Možnosti

Možnosti –Indexes -Vključuje
Naročilo dovoli, zanikaj dovoli vse

  • Znova zaženite Apache

Opomba: če imate v svojem okolju več direktiv Directory, bi morali razmisliti, da bi enako storili za vse.

X-XSS zaščita

Zaščita pred skriptnimi skriptami (XSS) je v mnogih brskalnikih mogoče zaobiti. To zaščito lahko uporabite za spletno aplikacijo, če jo je uporabnik onemogočil. To uporablja večina velikanskih spletnih podjetij, kot so Facebook, Twitter, Google itd.

  • Pojdite v imenik $ Web_Server / conf
  • Odprite httpd.conf s pomočjo vi in ​​dodajte smernico Header

Nastavitev glave X-XSS-Protection "1; način = blok"

  •  Znova zaženite Apache

Kot vidite, je v glavo odziva vbrizgana zaščita XSS.

Onemogoči protokol HTTP 1.0

Ko govorimo o varnosti, bi morali varovati, kolikor lahko. Zakaj torej uporabljamo starejšo različico protokola HTTP, jih tudi onemogočimo?

HTTP 1.0 ima varnostne pomanjkljivosti, povezane z odvzemom seje. To lahko onemogočimo z modulom mod_rewrite.

  • Poskrbite, da v datoteko httpd.conf naložite mod_rewrite modul
  •  Omogočite naslednjo direktivo RewriteEngine in dodajte pogoje Rewrite, da boste dovolili samo HTTP 1.1

Vnovično zapisovanje jezika vklopljeno
RewriteCond% {THE_REQUEST}! HTTP / 1,1 $
RewriteRule. * – [F]

Konfiguracija vrednosti časovne omejitve

Privzeto je vrednost časovnega izhoda Apache 300 sekund, kar je lahko žrtev napada počasnega Lorisa in DoS. Če želite to omiliti, lahko vrednost časovne omejitve zmanjšate na morda 60 sekund.

  • Pojdite v imenik $ Web_Server / conf
  • Odprite httpd.conf z vi
  •  V httpd.conf dodajte naslednje

Časovna omejitev 60

SSL

Imeti SSL je dodatna plast varnosti, ki jo dodajate v spletno aplikacijo. Vendar privzeta konfiguracija SSL vodi do določenih ranljivosti in razmislite o prilagoditvi teh konfiguracij.

SSL ključ

Kršenje SSL-ključa je težko, ni pa nemogoče. To je le vprašanje računske moči in časa.

Kot morda veste, lahko z uporabo računalnika v dobi 2009 pobegnete približno 73 dni vzvratni inženir 512-bitni ključ.

Večja kot je dolžina ključa, bolj zapleteno postane prekinitev SSL ključa. Večina velikanskih spletnih podjetij uporablja 2048-bitni ključ, kot spodaj, zakaj ne?

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

OpenSSL lahko uporabite za ustvarjanje CSR z 2048 bit, kot je spodaj.

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

Ustvaril bo CSR, ki ga boste morali poslati na certifikacijski organ da se podpiše. Ko prejmete podpisano datoteko potrdil, jih lahko dodate v datoteko httpd-ssl.conf

SSLCertificateFile # Certifikat podpisal organ
SSLCertificateChainFile # podpisnik certifikata, ki ga poda organ
SSLCertificateKeyFile #Key datoteko, ki ste jo ustvarili zgoraj

  • Znova zaženite spletni strežnik Apache in poskusite dostopati do URL-ja s https

Šifra SSL

SSL Cipher je algoritem za šifriranje, ki se uporablja kot ključ med dvema računalnikoma prek interneta. Šifriranje podatkov je postopek pretvorbe navadnega besedila v skrivne šifrirane kode.

Temelji na konfiguraciji vašega spletnega strežnika SSL Cipher, šifriranje podatkov bo potekalo. Pomembno je, da konfigurirate šifro SSL, ki je močnejši in ni ranljiv.

  • Pojdite v mapo $ Web_Server / conf / extra
  •  Spremenite SSLCipherSuite direktivo v httpd-ssl.conf, kot je spodaj, tako da sprejemate samo višje algoritme šifriranja

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

  •  Shranite konfiguracijsko datoteko in znova zaženite apache strežnik

Opomba: Če imate v svojem revizijskem poročilu SSL veliko šibkih šifre, jih lahko dodajanje hitro zavrnete! na začetku.

Onemogoči SSL v2 & v3

SSL v2 & v3 ima veliko varnostnih napak in če delate na preizkusu penetracije ali skladnosti s PCI, boste verjetno morali zaključiti varnostno ugotovitev, da onemogočite SSL v2 / v3.

Vsaka komunikacija SSL v2 / v3 je lahko ranljiva zaradi napada človek v sredini, ki bi lahko omogočil poseg ali razkritje podatkov..

Uvedimo spletni strežnik apache, da sprejme samo najnovejši TLS in zavrne zahtevo za povezavo SSL v2 / v3.

  • Pojdite v mapo $ Web_Server / conf / extra
  • Spremenite direktivo SSLProtocol v httpd-ssl.conf, kot je spodaj, da boste sprejeli samo TLS 1.2+

SSLProtocol –ALL + TLSv1.2

Ko končate s konfiguracijo SSL, je dobro, da spletno aplikacijo preizkusite s spletnim orodjem SSL / TLS Certificate in poiščete kakršno koli napako v konfiguraciji..

Mod Varnost

Mod Security je odprtokodni požarni zid za spletne aplikacije, ki ga lahko uporabljate z Apache.

Na voljo je kot modul, ki ga morate sestaviti in namestiti. Če si ne morete privoščiti požarnega zidu komercialne spletne aplikacije, bi bila to odlična izbira.

Osnovna pravila za zaščito splošnih spletnih aplikacij uporabljajo naslednje tehnike:

  • Zaščita HTTP – odkrivanje kršitev protokola HTTP in lokalno določene politike uporabe
  • Poizvedbe na črnem seznamu v realnem času – uporablja ugled tretje strani IP
  • Spletno odkrivanje zlonamerne programske opreme – prepozna zlonamerno spletno vsebino s preverjanjem Googlovega API-ja za varno brskanje.
  • Zavrnitev zaščite storitev HTTP – obramba pred poplavami HTTP in počasnimi napadi HTTP DoS.
  • Skupna zaščita spletnih napadov – zaznavanje pogostega napada nad varnostjo spletnih aplikacij
  • Avtomatično odkrivanje – odkrivanje botov, pajkov, skenerjev in drugih zlonamernih površinskih dejavnosti
  • Integracija z AV skeniranjem za nalaganje datotek – prepozna zlonamerne datoteke, naložene prek spletne aplikacije.
  • Sledenje občutljivim podatkom – spremlja porabo kreditne kartice in blokira uhajanje.
  • Trojanska zaščita – zaznavanje dostopa do trojanskih konj.
  • Identifikacija napak v aplikaciji – opozorila o napačnih konfiguracijah aplikacije.
  • Zaznavanje in skrivanje napak – prikrivanje sporočil o napakah, ki jih pošlje strežnik.

Prenesi & Namestitev

Na strežniku, kjer želite uporabljati Mod Security z Apache, morate namestiti naslednje pogoje. Če katera koli od teh ne obstaja, sestava Mod Security Security ne bo uspela. Za namestitev teh paketov lahko uporabite yum install v Linuxu ali Centosu.

  • apache 2.x ali višje
  • paket libpcre
  •  paket libxml2
  • paket liblua
  • paket libcurl
  •  paket libapr in libapr-util
  •  mod_unique_id modul v paketu s spletnim strežnikom Apache

Zdaj pa prenesite najnovejšo stabilno različico Mod Security 2.7.5 s tukaj

  • Preneseno datoteko prenesite v / opt / apache
  • Izvleči modsecurity-apache_2.7.5.tar.gz

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

  • Pojdite na izvlečeno mapo modsecurity-apache_2.7.5

# cd modsecurity-apache_2.7.5

  • Zaženite konfiguracijski skript, vključno s potjo apxs do obstoječega Apache

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

  • Sestavi & namestite z make script

# make
# izvedite namestitev

  • Ko je namestitev končana, boste v mapi z moduli pod / opt / apache videli mod_security2.so

Zdaj se to zaključi, ste namestili Mod Security Modul v obstoječi spletni strežnik Apache.

Konfiguracija

Za uporabo varnostne funkcije Mod z Apache moramo naložiti modni varnostni modul v httpd.conf. Modul mod_unique_id je predpogoj za Mod Mod Security.

Ta modul ponuja spremenljivko okolja z edinstvenim identifikatorjem za vsako zahtevo, ki ga spremlja in uporablja Mod Security.

  • Dodajte naslednjo vrstico, da naložite modul za Mod Security v httpd.conf in shranite konfiguracijsko datoteko

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

  •  Znova zaženite spletni strežnik apache

Mod Security je zdaj nameščen!

Naslednja stvar, ki jo morate storiti, je, da namestite jedro pravila Mod Security, da v celoti izkoristite njegovo funkcijo.

Najnovejša osnovna pravila lahko prenesete s povezave, ki je brezplačna. https://github.com/SpiderLabs/owasp-modsecurity-crs/zipball/master

  • Kopirajte preneseno zip pravilo jedra v mapo / opt / apache / conf
  • Odstranite osnovno datoteko s pravili
  • Morda boste želeli mapo preimenovati v nekaj, kar si je enostavno zapomniti. V tem primeru se bom preimenoval v crs.
  • Pojdite v mapo crs in preimenujte modsecurity_crs10_setup.conf.example v modsecurity_crs10_setup.conf

Zdaj omogočimo, da ta pravila delujejo s spletnim strežnikom Apache.

  •  V httpd.conf dodajte naslednje

Vključi conf / crs / modsecurity_crs_10_setup.confInclude conf / crs / base_rules / *. Conf

V zgornji konfiguraciji nalagamo glavno konfiguracijsko datoteko Mod Security modsecurity_crs_10_setup.conf in osnovna pravila base_rules / *. Conf, ki jih zagotavljajo mod Security Core Core Rules za zaščito spletnih aplikacij.

  •  Znova zaženite spletni strežnik apache

Uspešno ste konfigurirali Mod Security z Apache!

Dobro opravljeno. Zdaj je spletni strežnik Apache zaščiten s požarnim zidom za spletno aplikacijo Mod Security.

Uvod

Začnimo z utrjevanjem nekaterih kritičnih konfiguracij v Mod Security & varne spletne aplikacije.

V tem razdelku bomo naredili vse spremembe konfiguracije v /opt/apache/conf/crs/modsecurity_crs_10_setup.conf.

V tem razdelku bomo na primer / napotili /opt/apache/conf/crs/modsecurity_crs_10_setup.conf kot setup.conf.

Pomembno je razumeti, katera pravila OWASP so na voljo brezplačno. Obstajata dve vrsti pravil, ki jih ponuja OWASP.

Osnovna pravila – ta pravila so močno preizkušena in verjetno je razmerje lažnih alarmov manjše.

Poskusna pravila – ta pravila so v eksperimentalni namen in morda imate visok lažni alarm. Pomembno je, da konfigurirate, preizkusite in implementirate UAT, preden jih uporabite v proizvodnem okolju.

Izbirna pravila – ta neobvezna pravila morda niso primerna za celotno okolje. Glede na vaše zahteve jih lahko uporabite.

Če iščete zaščito CSRF, sledenje uporabnikom, ugrabitev seje itd., Potem lahko razmislite o uporabi neobveznih pravil. Po izvleku prenesene datoteke crs zip s strani za prenos OWASP imamo osnovna, neobvezna in eksperimentalna pravila.

Konfiguracijska datoteka teh pravil je na voljo v mapi crs / base_rules, crs / optional_rules in crs / eksperimentalna_rules. Seznanimo se z nekaterimi osnovnimi pravili.

  • modsecurity_crs_20_protocol_violations.conf: To pravilo varuje pred ranljivostmi protokola, kot so delitev odziva, tihotapljenje zahtevkov, z uporabo nedovoljenega protokola (HTTP 1.0).
  • modsecurity_crs_21_protocol_anomalies.conf: To je zaščita pred zahtevo, ki v glavi ni Host, Accept, User-Agent..
  • modsecurity_crs_23_request_limits.conf: To pravilo je odvisno od posebne aplikacije, kot so velikost zahteve, velikost nalaganja, dolžina parametra itd..
  • modsecurity_crs_30_http_policy.conf: s tem konfigurirate in zaščitite dovoljeno ali prepovedano metodo, na primer CONNECT, TRACE, PUT, DELETE itd..
  • modsecurity_crs_35_bad_robots.conf: Odkrivanje zlonamernih robotov
  • modsecurity_crs_40_generic_attacks.conf: zaščita pred vbrizgovanjem ukazov OS, oddaljeno vključitev datotek itd..
  • modsecurity_crs_41_sql_injection_attacks.conf: To pravilo za zaščito SQL in slepo zahtevo za injiciranje SQL.
  • modsecurity_crs_41_xss_attacks.conf: Zaščita pred zahtevo po skriptnem križanju.
  • modsecurity_crs_42_tight_security.conf: odkrivanje in zaščita prehodnega imenika.
  • modsecurity_crs_45_trojans.conf: To pravilo za zaznavanje generičnega izhodnega upravljanja datotek, nalaganje stranske strani HTTP, znan podpis.
  • modsecurity_crs_47_common_exceptions.conf: To se uporablja kot mehanizem izjeme za odstranjevanje običajnih napačnih pozitivnih pozitivnih pozitivnih pozitivnih pozitivnih elementov, ki jih lahko srečamo kot Apache interno lutko povezavo, SSL pinger itd..

Zapisovanje dnevnikov

Zapisovanje je ena prvih stvari, ki jo morate konfigurirati, tako da lahko ustvarite dnevnike za to, kar počne Mod Security. Na voljo sta dve vrsti beleženja; Odpravljanje napak & Dnevnik revizije.

Dnevnik napak: to je, da podvojite sporočila o napaki Apache, opozorila in obvestila iz dnevnika napak.

Dnevnik revizije: to je za zapis dnevnikov transakcij, ki jih označuje Mod Security pravilo Mod Security vam omogoča prilagodljivost revizije, odpravljanje napak ali obe dnevniki.

Privzeto konfiguracija bo napisala oba dnevnika. Vendar se lahko spremenite glede na vaše zahteve. Dnevnik se nadzoruje v direktivi SecDefaultAction. Oglejmo si privzeto konfiguracijo beleženja v setup.conf

SecDefaultAction “faza: 1, zanikaj, dnevnik”

Če želite prijaviti Debug, Audit dnevnik – uporabite “log” Če želite beležiti samo dnevnik revizije – uporabite “nolog, auditlog” Če želite beležiti samo dnevnik za odpravljanje napak – uporabite “log, noauditlog” Lahko določite lokacijo revizijskega dnevnika, ki jo želite shraniti, ki jo nadzira SecAuditLog direktiva.

Vpišite se v /opt/apache/logs/modsec_audit.log, tako da dodate, kot je prikazano spodaj.

  • Dodajte SecAuditLog direktivo v setup.conf in znova zaženite spletni strežnik Apache

SecAuditLog /opt/apache/logs/modsec_audit.log

  • Po ponovnem zagonu bi morali videti modsec_audit.log, ki se generira

Omogoči motor s pravili

Pravilo motorja je privzeto izklopljeno, kar pomeni, da če ne omogočite Rule Engine, ne uporabljate vseh prednosti Mod Security.

Pravilo, ki ga omogoči ali onemogoči motor, nadzoruje direktiva SecRuleEngine.

  • Dodajte SecRuleEngine direktivo v setup.conf in znova zaženite spletni strežnik Apache

SecRuleEngine vklopljen

Za SecRuleEngine obstajajo tri vrednosti:

  • Vklopljen – omogočite Rule Engine
  • Izklopljeno – če želite onemogočiti Rule Engine
  • DetectionOnly – omogoči Rule Engine, vendar nikoli ne izvaja nobenih dejanj, kot so blok, zanika, pusti, dovoli, proxy ali preusmeri

Ko je Rule Engine vklopljen – Mod Security se je pripravljen zaščititi z nekaterimi običajnimi vrstami napadov.

Skupna zaščita pred napadi

Zdaj je spletni strežnik pripravljen zaščititi s skupnimi vrstami napadov, kot so XSS, SQL Injection, Kršenje protokola itd., Saj smo namestili Core Rule in vklopili Rule Engine. Preizkusimo jih nekaj.

XSS Attack

  •  Odprite Firefox in odprite svojo aplikacijo ter na koncu ali URL postavite oznako
  •  Spremljajte modsec_audit.log v mapi apache / log

Opazili boste zahtevo Mod Security Blocks, saj vsebuje oznako, ki je koren napada XSS.

Napad po prehodu v imenik: – Napadi s prehodom v imenik lahko z izkoriščanjem te ranljivosti in datotek, povezanih s sistemom, ustvarijo veliko škode. Ex – / etc / passwd, .htaccess itd.

  •  Odprite Firefox in pojdite do svoje aplikacije s prečkanjem imenika
  •  Spremljajte modsec_audit.log v mapi apache / log

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

  • Opazili boste zahtevo Mod Security Blocks, saj vsebuje prečkanje imenika.

Spremenite pasico strežnika

Prej v tem priročniku ste izvedeli, kako odstraniti Apache in vrsto OS, pomoč pri različici direktive ServerTokens.

Pojdimo še korak naprej, kako pa ime strežnika ohraniti, kar želite? To je mogoče z direktivo SecServerSignature v Mod Security. Vidite, da je zanimivo.

Opomba: Če želite Mod Varnost uporabljati za upravljanje strežnika strežnika iz glave, morate ServerTokesn nastaviti na Full v httpd.conf spletnega strežnika Apache.

  • Dodajte SecServerSignature direktivo z želenim imenom strežnika v setup.conf in znova zaženite spletni strežnik Apache

SecServerSignature YourServerName

Primer:

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

Splošna konfiguracija

Oglejmo nekatere splošne konfiguracije kot najboljšo prakso.

Konfiguriraj poslušanje

Če imate na enem strežniku več vmesnikov in IP-jev, je priporočljivo, da je konfigurirana direktiva za poslušanje z absolutno IP in številko vrat.

Če pustite konfiguracijo apache za poslušanje vseh IP-jev z neko številko vrat, lahko to povzroči težavo pri posredovanju zahteve HTTP na drug spletni strežnik. To je v skupnem okolju precej pogosto.

  • Konfigurirajte direktivo poslušanja v httpd.conf z absolutnim IP in vrati, kot je prikazano spodaj

Poslušajte 10.10.10.1:80

Dostop do beleženja

Ključnega pomena je pravilno konfiguriranje dnevnika dostopa na vašem spletnem strežniku. Nekaj ​​pomembnih parametrov, ki jih želite zajeti v dnevnik, je čas, potreben za vročitev zahteve, ID SESSION.

Apache privzeto ni konfiguriran za zajemanje teh podatkov. Ročno jih morate konfigurirati na naslednji način.

  • Zajem časa, potrebnega za vročitev zahteve in ID SESSION v dostopnem dnevniku
  •  Dodajte% T & % sessionID v httpd.conf v skladu z direktivo LogFormat

LogFormat "% h% l% u% t "% {sessionID} C" "% r" %>s% b% T" običajni

Lahko se sklicujete http://httpd.apache.org/docs/2.2/mod/mod_log_config.html za celoten seznam parametrov, ki jih podpira WebFormat direktiva v spletnem strežniku Apache.

Onemogoči nalaganje neželenih modulov

Če ste zbrali in namestili vse module, obstaja velika verjetnost, da boste v Apache naložili veliko modulov, ki morda niso potrebni..

Najboljša praksa je, da v svojih spletnih aplikacijah konfigurirate Apache z zahtevanimi moduli. Naslednji moduli imajo pomisleke glede varnosti in morda bi vas zanimalo, da bi onemogočili httpd.conf spletnega strežnika Apache.

WebDAV (spletno distribuirano avtorstvo in različice) Ta modul omogoča oddaljenim odjemalcem, da manipulirajo z datotekami na strežniku in so podvrženi različnim napadom zavrnitve storitve. Če želite onemogočiti komentar, ki sledi v httpd.conf

#LoadModule dav_module module / mod_dav.so
#LoadModule dav_fs_module module / mod_dav_fs.so
# Vključi conf / extra / httpd-dav.conf

Info modul Mod_info modul lahko pušča občutljive informacije z uporabo .htaccess, ko je ta modul naložen. Če želite onemogočiti komentar, ki sledi v httpd.conf

#LoadModule info_module module / mod_info.so

Sklic: To ne bi bilo mogoče brez napotkov s te povezave:

To je bilo nekaj najboljših praks, ki jih lahko uporabite za zaščito spletnega strežnika Apache.

Če ste nov za Apache HTTP, priporočam, da vzamete tečaj upravljanja Apache HTTP.

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