Napisano u Piton, Fail2ban je besplatan i otvoren izvor Sustav sprječavanja upada (IPS) koji štiti poslužitelj od brute-force napada.
Nakon navedenog broja pokušaja netočne lozinke, IP adresi klijenta bit će zabranjen pristup sustavu na određeno razdoblje ili dok je administrator sustava ne deblokira. Na ovaj način sustav je zaštićen od opetovanih grubih napada s jednog domaćina.
[Možda će vam se svidjeti i: Kako osigurati i učvrstiti OpenSSH poslužitelj ]
Fail2ban je visoko konfiguriran i može se postaviti za osiguravanje bezbroj usluga kao što su SSH, vsftpd, Apač, i Webmin.
U ovom vodiču fokusiramo se na to kako možete instalirati i konfigurirati Fail2ban na Rocky Linux i AlmaLinux.
Prema zadanim postavkama, Rocky dolazi sa Firewalld trčanje. Međutim, ako to nije slučaj na vašem sustavu, počnite Firewalld izvršavanjem:
$ sudo systemctl pokrenite firewalld.
Zatim omogućite pokretanje tijekom pokretanja:
$ sudo systemctl omogućiti firewalld.
Zatim provjerite status Firewallda
$ sudo systemctl status firewalld.
Osim toga, možete potvrditi sve Firewalld pravila koja se trenutno provode pomoću naredbe:
$ sudo firewall-cmd --list-all.
Kao uvjet za ugradnju fail2ban i druge potrebne pakete, morate instalirati EPEL spremište koje nudi dodatne visokokvalitetne pakete za Distribucije temeljene na RHEL-u.
$ sudo dnf instalirajte epel-release.
S EPEL instaliran, nastavite i instalirajte fail2ban i fail2ban-firewalld paket.
$ sudo dnf install fail2ban fail2ban-firewalld.
Ovo instalira fail2ban poslužitelj i firewalld komponentu zajedno s drugim ovisnostima.
Nakon što je instalacija fail2ban dovršena, pokrenite fail2ban uslugu.
$ sudo systemctl start fail2ban.
I omogućiti mu pokretanje u vrijeme pokretanja.
$ sudo systemctl omogući fail2ban.
Status usluge fail2ban možete provjeriti pokretanjem naredbe:
$ sudo systemctl status fail2ban.
Izlaz je potvrda da Fail2ban radi onako kako bismo očekivali.
Idemo dalje, moramo konfigurirati fail2ban kako bi radio kako je predviđeno. U idealnom slučaju, uredili bismo glavnu konfiguracijsku datoteku - /etc/fail2ban/jail.conf. Međutim, to je obeshrabreno. Zaobilazno rješenje će kopirati sadržaj konfiguracijske datoteke jail.conf u zatvor.lokalno datoteka.
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local.
Sada otvorite zatvor.lokalno datoteku pomoću željenog uređivača.
$ sudo vim /etc/fail2ban/jail.local.
Ispod [ZADANO] odjeljak, provjerite imate li sljedeće postavke kako se pojavljuju.
bantime = 1h. vrijeme nalaza = 1h. maxretry = 5.
Definirajmo atribute:
Prema zadanim postavkama fail2ban radi s iptables -ima. Međutim, to je zastarjelo u korist firewalla. Moramo konfigurirati fail2ban da radi zajedno sa firewalldom umjesto iptables.
Dakle, pokrenite naredbu:
$ sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local.
Za primjenu promjena ponovno pokrenite fail2ban:
$ sudo systemctl ponovno pokretanje fail2ban.
Prema zadanim postavkama, fail2ban ne blokira nijedan udaljeni host dok ne omogućite zatvorsku konfiguraciju za uslugu koju želite zaštititi. Konfiguracija zatvora navedena je u /etc/fail2ban/jail.d put i nadjačat će konfiguraciju navedenu u datoteci jail.local.
U ovom primjeru stvorit ćemo zatvorsku konfiguracijsku datoteku za zaštitu SSH usluge. Stoga stvorite SSH datoteku zatvora.
$ sudo vim /etc/fail2ban/jail.d/sshd.local.
Zatim zalijepite sljedeće retke:
[sshd] enabled = true # Nadjačaj zadanu globalnu konfiguraciju. # za određeni zatvor sshd. bantime = 1d. maxretry = 3.
U gornjoj konfiguraciji udaljenom hostu bit će zabranjen pristup sustavu 1 dan nakon 3 neuspjela pokušaja prijave na SSH. Spremite promjene i ponovno pokrenite fail2ban uslugu.
$ sudo systemctl ponovno pokretanje fail2ban.
Zatim provjerite status konfiguracije zatvora pomoću fail2ban-client uslužni program naredbenog retka.
$ sudo fail2ban-status klijenta.
Iz izlaza možemo vidjeti da imamo 1 zatvor konfiguriran za uslugu pod nazivom 'sshd’.
Osim toga, možete potvrditi maxretry vrijednost zatvora sshd pomoću opcije get.
$ sudo fail2ban-client get sshd maxretry 3.
Ispisana vrijednost 3 treba odgovarati onome što ste naveli u sshd.local datoteka.
Nakon postavljanja fail2ban i stvaranja zatvorske konfiguracijske datoteke za SSH uslugu, idemo na izvršiti probni rad i simulirati 3 neuspješne prijave tako što ćete za svaku lozinku navesti netočnu lozinku potaknuti.
Stoga prijeđite na udaljeni Linux sustav i pokušajte se prijaviti koristeći pogrešnu lozinku. Nakon 3 neuspjela pokušaja, veza će se prekinuti, a svaki sljedeći pokušaj ponovnog povezivanja bit će blokiran sve dok ne istekne zabrana.
Za prikupljanje uvida u blokirane klijentske sustave provjerite status zatvora.
$ sudo fail2ban-client status sshd.
Da biste poništili zabranu ili uklonili klijenta iz zatvora, izvedite naredbu:
$ sudo fail2ban-client unban 192.168.2.102.
Još jednom provjerite zatvorski status kako biste bili sigurni da klijent nije uključen na popis zabranjenih IP adresa.
$ sudo fail2ban-client status sshd.
Kao što smo vidjeli, Fail2ban je vrlo koristan alat u odbrani od uljeza koji pokušavaju probiti vaš Linux sustav. Radi zajedno s Firewalldom za zabranu klijentskih sustava na određeno vrijeme nakon određenog broja neuspjelih pokušaja prijave. Pritom pruža dodatni sloj zaštite vašem Linux poslužitelju.