![SSH Prijava bez lozinke pomoću SSH Keygena u 5 lakih koraka](/f/4e60b8e56038a7e02e815ee27e3edb3d.jpg?width=100&height=100)
Za vas koji se bavite hostingom ili ako posjedujete vlastite poslužitelje i izlažete ih Internetu, zaštita vaših sustava od napadača mora biti visoki prioritet.
mod_security (mehanizam za otkrivanje i sprječavanje upada otvorenog koda za web aplikacije koji se bez problema integrira s web poslužiteljem) i mod_evazivan dva su vrlo važna alata koja se mogu koristiti za zaštitu web poslužitelja od grube sile ili (D) DoS napada.
mod_evazivan, kako mu ime govori, pruža mogućnosti izbjegavanja dok je napadnut, djelujući kao kišobran koji štiti web poslužitelje od takvih prijetnji.
U ovom ćemo članku raspravljati o tome kako ih instalirati, konfigurirati i staviti u igru zajedno s Apacheom RHEL/CentOS 8 i 7 kao i Fedora. Osim toga, simulirat ćemo napade kako bismo provjerili reagira li poslužitelj u skladu s tim.
To pretpostavlja da imate LAMP poslužitelj instaliran na vašem sustavu. Ako ne, prije nego nastavite, pročitajte ovaj članak.
Također ćete morati postaviti iptables kao zadani prednji dio vatrozida umjesto firewalld ako trčite RHEL/CentOS 8/7 ili Fedora. To činimo kako bismo koristili isti alat u oba RHEL/CentOS 8/7 i Fedora.
Za početak zaustavite i onemogućite firewalld:
# systemctl zaustaviti firewalld. # systemctl onemogući firewalld.
Zatim instalirajte iptables-usluge paket prije omogućavanja iptables:
# yum update && yum install iptables-services. # systemctl omogućuju iptables. # systemctl pokrenite iptables. # systemctl status iptables.
Osim što već imate postavljeno LAMP, morat ćete i to učiniti omogućiti spremište EPEL -a u RHEL/CentOS 8/7 kako biste instalirali oba paketa. Korisnici Fedore ne moraju omogućiti nikakav repo, jer je epel već dio Fedora projekta.
# yum update && yum install mod_security mod_evasive CentOS/RHEL 8 # dnf install https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-1.el8.noarch.rpm. # dnf --enablerepo = raven-extras instalirati mod_evasive.
Kad instalacija završi, konfiguracijske datoteke za oba alata pronaći ćete u /etc/httpd/conf.d.
# ls -l /etc/httpd/conf.d.
Sada, kako bismo integrirali ova dva modula s Apač i neka ih učita kad se pokrene, pobrinite se da se sljedeći retci pojave u odjeljku najviše razine u mod_evasive.conf i mod_security.conf, odnosno:
LoadModule evasive20_module modules/mod_evasive24.so. LoadModule security2_module moduli/mod_security2.tako.
Imajte na umu da moduli/mod_security2.tako i moduli/mod_evasive24.pa su relativni putevi, od /etc/httpd direktorij u izvornu datoteku modula. To možete provjeriti (i promijeniti ako je potrebno) navođenjem sadržaja datoteke /etc/httpd/modules imenik:
# cd/etc/httpd/modules. # pwd. # ls -l | grep -Ei '(izbjegavanje | sigurnost)'
Zatim ponovno pokrenite Apache i provjerite učitava li se mod_evazivan i mod_security:
# systemctl ponovno pokrenite httpd
Izbacite popis učitanih statičkih i dijeljenih modula.
# httpd -M | grep -Ei '(izbjegavanje | sigurnost)'
U nekoliko riječi, a Skup osnovnih pravila (tzv CRS) pruža web poslužitelju upute kako se ponašati pod određenim uvjetima. Tvrtka za razvoj programera mod_security pruža besplatno CRS zvao OWASP (Otvorite Projekt sigurnosti web aplikacija) ModSecurity CRS koji se može preuzeti i instalirati na sljedeći način.
1. Preuzmite OWASP CRS u imenik kreiran u tu svrhu.
# mkdir/etc/httpd/crs-tecmint. # cd/etc/httpd/crs-tecmint. # wget -c https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.2.0.tar.gz -O majstore.
2. Odmaknite se od CRS datoteku i promijenite naziv direktorija radi lakšeg korištenja.
# tar xzf majstor. # mv owasp-modsecurity-crs-3.2.0 owasp-modsecurity-crs.
3. Sada je vrijeme za konfiguriranje mod_security. Kopirajte datoteku uzorka s pravilima (owasp-modsecurity-crs/modsecurity_crs_10_setup.conf.example) u drugu datoteku bez .primjer proširenje:
# cd owasp-modsecurity-crs/ # cp crs-setup.conf.example crs-setup.conf.
i reci Apač koristiti ovu datoteku zajedno s modulom umetanjem sljedećih redaka u glavnu konfiguracijsku datoteku web poslužitelja /etc/httpd/conf/httpd.conf datoteka. Ako ste odlučili raspakirati tarball u drugom direktoriju, morat ćete urediti staze slijedeći smjernice Uključi:
Uključi crs-tecmint/owasp-modsecurity-crs/crs-setup.conf Uključi crs-tecmint/owasp-modsecurity-crs/rules/*. Conf.
Na kraju, preporučuje se da stvorimo vlastitu konfiguracijsku datoteku unutar /etc/httpd/modsecurity.d direktorij u koji ćemo smjestiti naše prilagođene direktive (nazvat ćemo ga tecmint.conf u sljedećem primjeru) umjesto mijenjanja CRS datoteke izravno. To će omogućiti lakšu nadogradnju CRS -a s izlaskom novih verzija.
SecRuleEngine Na SecRequestBodyAccess Na SecResponseBodyAccess na SecResponseBodyMimeType tekst/običan tekst/html tekst/xml aplikacija/oktet-stream SecDataDir/tmp.
Možete se pozvati na SpiderLabs -ov ModSecurity GitHub spremište za cjelovit vodič s objašnjenjima mod_security konfiguracijske direktive.
mod_evazivan konfiguriran je pomoću direktiva u /etc/httpd/conf.d/mod_evasive.conf. Budući da ne postoje pravila za ažuriranje tijekom nadogradnje paketa, ne trebamo zasebnu datoteku za dodavanje prilagođenih direktiva, za razliku od mod_security.
Zadano mod_evasive.conf Datoteka ima omogućene sljedeće direktive (imajte na umu da je ova datoteka jako komentirana, pa smo uklonili komentare kako bismo istaknuli dolje navedene konfiguracijske direktive):
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10.
Objašnjenje direktiva:
Slobodno eksperimentirajte s ovim vrijednostima kako bi vaš web poslužitelj mogao obraditi potrebnu količinu i vrstu prometa.
Samo malo upozorenje: ako ove vrijednosti nisu ispravno postavljene, riskirate da ćete blokirati legitimne posjetitelje.
Možda biste trebali razmotriti i druge korisne direktive:
Ako imate poslužitelj pošte koji radi, možete slati poruke upozorenja putem Apachea. Imajte na umu da ćete morati odobriti apache korisniku SELinux dopuštenje za slanje e -pošte ako je SELinux postavljen na provođenje. To možete učiniti trčanjem
# setsebool -P httpd_can_sendmail 1.
Zatim dodajte ovu direktivu u mod_evasive.conf datoteku s ostatkom drugih direktiva:
DOSEmailNotify [zaštićena e -pošta]
Ako je ova vrijednost postavljena i vaš poslužitelj pošte radi ispravno, e -poruka će biti poslana na navedenu adresu svaki put kad IP adresa postane na crnoj listi.
Ovo zahtijeva valjanu naredbu sustava kao argument,
DOSSystemCommand
Ova direktiva navodi naredbu koja će se izvršiti kad god IP adresa postane na crnoj listi. Često se koristi zajedno sa skriptom ljuske koja dodaje pravilo vatrozida za blokiranje daljnjih veza koje dolaze s te IP adrese.
Kad IP adresa postane na crnoj listi, moramo blokirati buduće veze koje dolaze s nje. Koristit ćemo sljedeću ljusku skriptu koja obavlja ovaj posao. Napravite imenik pod nazivom skripte-tecmint (ili bilo koje drugo ime po vašem izboru) u /usr/local/bin i datoteku pod nazivom ban_ip.sh u tom imeniku.
#!/bin/sh. # IP koji će biti blokiran, što je otkrio mod_evasive. IP = 1 USD. # Potpuni put do iptablesa. IPTABLES = "/sbin/iptables" # mod_evasive direktorij zaključavanja. MOD_EVASIVE_LOGDIR =/var/log/mod_evazivan. # Dodajte sljedeće pravilo vatrozida (blokirajte sav promet koji dolazi s $ IP) $ IPTABLES -I ULAZ -s $ IP -j DROP. # Uklonite datoteku zaključavanja za buduće provjere. rm -f "$ MOD_EVASIVE_LOGDIR"/dos -"$ IP"
Naše DOSSystemCommand Direktiva bi trebala glasiti kako slijedi:
DOSSystemCommand "sudo /usr/local/bin/scripts-tecmint/ban_ip.sh %s"
U gornjoj liniji, %s predstavlja prekršajnu IP adresu koju je otkrio mod_evazivan.
Imajte na umu da sve ovo jednostavno neće funkcionirati ako ne date dopuštenja korisniku apač pokrenuti našu skriptu (i samo tu skriptu!) bez terminala i lozinke. Kao i obično, možete samo tipkati visudo kao root za pristup /etc/sudoers datoteku, a zatim dodajte sljedeća 2 retka kao što je prikazano na donjoj slici:
apache ALL = NOPASSWD: /usr/local/bin/scripts-tecmint/ban_ip.sh. Zadane postavke: apache! Requiretty.
VAŽNO: Prema zadanim sigurnosnim pravilima, možete pokrenuti samo sudo u terminalu. Budući da u ovom slučaju moramo koristiti sudo bez a tty, moramo komentirati redak istaknut na sljedećoj slici:
#Zadane postavke zahtijevaju.
Na kraju, ponovno pokrenite web poslužitelj:
# systemctl ponovno pokrenite httpd.
Postoji nekoliko alata koje možete koristiti za simulaciju vanjskog napada na poslužitelj. Možete samo google za "alati za simulaciju ddos napada”Kako bi pronašli nekoliko njih.
Imajte na umu da ćete, i samo vi, biti odgovorni za rezultate vaše simulacije. Nemojte ni pomišljati pokrenuti simulirani napad na poslužitelj koji ne hostirate unutar vlastite mreže.
Ako želite učiniti isto s VPS -om čiji je domaćin netko drugi, morate na odgovarajući način upozoriti svog pružatelja usluga hostinga ili zatražiti dopuštenje da takva poplava prometa prođe kroz njihove mreže. Tecmint.com ni na koji način nije odgovoran za vaša djela!
Osim toga, pokretanje simuliranog DoS napada sa samo jednog domaćina ne predstavlja napad iz stvarnog života. Da biste simulirali takvo što, trebali biste ciljati svoj poslužitelj od više klijenata istovremeno.
Naše ispitno okruženje sastoji se od a CentOS 7 poslužitelj [IP 192.168.0.17] i Windows host s kojeg ćemo pokrenuti napad [IP 192.168.0.103]:
Reproducirajte video ispod i slijedite korake navedene u navedenom redoslijedu za simulaciju jednostavnog DoS napada:
Zatim iptables blokira IP koji vrijeđa:
S mod_security i mod_evazivan omogućeno, simulirani napad uzrokuje CPU i radna memorija eksperimentirati s privremenim vrhom upotrebe samo nekoliko sekundi prije nego što izvorne IP adrese budu stavljene na crnu listu i blokirane vatrozidom. Bez ovih alata simulacija će zasigurno vrlo brzo srušiti poslužitelj i učiniti ga neupotrebljivim tijekom trajanja napada.
Voljeli bismo čuti planirate li koristiti (ili ste u prošlosti koristili) ove alate. Uvijek se radujemo vašem dolasku, stoga ne ustručavajte se ostaviti svoje komentare i pitanja, ako ih ima, koristeći donji obrazac.
https://www.modsecurity.org/