IPS ali Intrusion Prevention System je tehnologija, ki se uporablja v omrežni varnosti za pregledovanje omrežnega prometa in preprečevanje različnih napadov z odkrivanjem zlonamernih vhodov. Poleg zaznavanja zlonamernih vnosov, kot to počne sistem za zaznavanje vdorov, omrežju preprečuje tudi zlonamerne napade. Omrežju lahko prepreči brutalno uporabo, DoS (zavrnitev storitve), DDoS (porazdeljena zavrnitev storitve), podvige, črve, viruse in druge pogoste napade. IPS so nameščeni tik za požarnim zidom in lahko pošiljajo alarme, spuščajo zlonamerne pakete in blokirajo naslove IP, ki kršijo. V tej vadnici bomo uporabili Fail2ban, ki je programski paket za preprečevanje vdorov, da dodamo zaščitno plast pred različnimi napadi surove sile.
Kako deluje Fail2ban
Fail2ban bere dnevniške datoteke (npr.g. / var / log / apache / error_log) in dobi nasilne IP-je, ki poskušajo preveč neuspelih gesel ali iščejo podvige. Fail2ban v bistvu posodablja pravila požarnega zidu, da blokira različne IP-je na strežniku. Fail2ban ponuja tudi filtre, ki jih lahko uporabimo za določeno storitev (npr.g., apache, ssh itd.).
Namestitev Fail2ban
Fail2ban v Ubuntuju ni prednameščen, zato ga moramo pred uporabo namestiti.
[e-pošta zaščitena]: ~ $ sudo apt-get update -y[zaščitena po e-pošti]: ~ $ sudo apt-get install fail2ban
Po namestitvi Fail2ban z ukazno vrstico zaženite in omogočite storitev Fail2ban.
[zaščiteno po e-pošti]: ~ $ sudo systemctl start fail2ban[zaščiteno po e-pošti]: ~ $ sudo systemctl omogoči fail2ban
Zdaj preverite stanje storitve fail2ban in preverite, ali se je začela ali ne.
Konfiguriranje Fail2ban za SSH
Fail2ban lahko konfiguriramo tako, da spremenimo / etc / fail2ban / jail.conf. Preden jo spremenite, naredite varnostno kopijo te datoteke.
[e-pošta zaščitena]: ~ $ sudo cp / etc / fail2ban / jail.conf / etc / fail2ban / jail.lokalno
Zdaj bomo konfigurirali Fail2ban, da prepreči zlonamernim vnosom storitev sshd. Odprite / etc / fail2ban / zapor.lokalno datoteko v vašem najljubšem urejevalniku.
[e-pošta zaščitena]: ~ $ sudo nano / etc / fail2ban / jail.lokalnoPojdite na [privzeto] in vnesite konfiguracijske parametre pod [privzeto] razdelek.
[PRIPOROČILO]ignoreip = 127.0.0.1/8 192.168.18.10/32
bantime = 300
maxretry = 2
findtime = 600
ignoreip je seznam maske cidr, naslova ip ali gostitelja DNS, ločen s presledkom. Na ta seznam dodajte svoje zaupanja vredne IP-je, ti IP-ji bodo uvrščeni na beli seznam in jih fail2ban ne bo blokiral, tudi če na strežnik izvedejo surovo napad.
bantime je čas, ko bo IP blokiran po določenem številu neuspelih poskusov strežnika.
maxretry je število največ neuspelih poskusov, po katerih je IP za določen čas blokiran s strani fail2ban.
najdite čas je čas, v katerem gostitelj naredi maxretry neuspeli poskusi, bo blokiran.
Po konfiguraciji zgornjih parametrov bomo zdaj konfigurirali storitev, za katero bodo veljala zgornja pravila. Fail2ban ima privzeto vnaprej določene filtre za različne storitve, zato za storitve ni treba vnašati nobenih posebnih vnosov. V konfiguracijski datoteki omogočamo ali onemogočimo samo različne storitve. Odprite / etc / fail2ban / zapor.lokalno datoteko v vašem najljubšem urejevalniku.
[e-pošta zaščitena]: ~ $ sudo nano / etc / fail2ban / jail.lokalnoPoišči [sshd] v datoteko in v razdelek vnesite naslednje parametre.
[sshd]omogoči = res
port = ssh
filter = sshd
logpath = / var / log / auth.log
maxretry = 3
omogočeno določa, ali je ta storitev zaščitena z fail2ban ali ne. Če je omogočeno, je storitev zaščitena; v nasprotnem primeru ni zaščiten.
pristanišče definira servisna vrata.
filter se nanaša na konfiguracijsko datoteko, ki jo bo uporabil fail2ban. Privzeto bo uporabil / etc / fail2ban / filter.d / sshd.datoteka conf za storitev ssh.
pot poti definira pot do dnevnikov, fail2ban bo spremljal za zaščito storitve pred različnimi napadi. Za storitev ssh lahko dnevnike preverjanja pristnosti najdete na / var / log / auth.log, zato bo fail2ban spremljal to dnevniško datoteko in posodobil požarni zid z odkrivanjem neuspelih poskusov prijave.
maxretry določa število neuspešnih poskusov prijave, preden jih je block2 blokiral.
Po uporabi zgornje konfiguracije za fail2ban znova zaženite storitev, da shranite spremembe.
[zaščiteno po e-pošti]: ~ $ sudo systemctl znova zaženite fail2ban.storitev[e-pošta zaščitena]: ~ $ sudo systemctl status fail2ban.storitev
Testiranje Fail2ban
Konfigurirali smo fail2ban za zaščito našega sistema pred napadi s silo na storitev ssh. Zdaj bomo v drugem sistemu poskusili prijaviti naš sistem, da preverimo, ali fail2ban deluje ali ne. Po nekaj neuspelih poskusih prijave bomo pregledali dnevnike fail2ban.
[zaščitena po e-pošti]: ~ $ cat / var / log / fail2ban.log
Vidimo lahko, da je IP po neuspelih poskusih prijave blokiral fail2ban.
Z naslednjim ukazom lahko dobimo seznam vseh storitev, za katere je omogočen fail2ban.
[e-pošta zaščitena]: ~ $ sudo fail2ban-client status
Zgornja slika prikazuje, da smo omogočili fail2ban samo za storitev sshd. Nadaljnje informacije o storitvi sshd lahko dobimo tako, da v zgornjem ukazu določimo ime storitve.
Fail2ban samodejno razveljavi prepovedani naslov IP po bantimeu, vendar lahko kadar koli prepovemo dostop do katerega koli IP-ja z ukazno vrstico. Tako boste dobili večji nadzor nad fail2ban. Z naslednjim ukazom prekinite prepoved naslova IP.
[e-pošta zaščitena]: ~ $ sudo fail2ban-client set sshd unbanip 192.168.43.35
Če poskusite razveljaviti IP naslov, ki ga block2 ne blokira, vam bo le povedal, da IP ni blokiran.
[e-pošta zaščitena]: ~ $ sudo fail2ban-client set sshd unbanip 192.168.43.35
Zaključek
Za sistemskega skrbnika ali varnostnega inženirja je velik izziv ohraniti varnost strežnikov. Če je vaš strežnik zaščiten z geslom, ne z parom javnih in zasebnih ključev, je strežnik bolj ranljiv za napadalce z grobo silo. V vaš sistem lahko vstopijo z uporabo različnih kombinacij gesel. Fail2ban je orodje, ki lahko napadalcem prepreči izvajanje različnih vrst napadov, vključno z napadi surove sile in DDoS napadi na vašem strežniku. V tej vadnici smo razpravljali o tem, kako lahko uporabimo Fail2ban za zaščito našega strežnika pred različnimi napadi. Fail2ban lahko uporabimo tudi za zaščito drugih storitev, kot so apache, nginx itd.