Kako instalirati Fail2ban na Rocky Linux i AlmaLinux


Napisan na Pythonu, Fail2ban je besplatan Sistem za sprječavanje upada otvorenog koda (IPS) koji štiti server protiv napada grubom silom.

Nakon određenog broja pokušaja pogrešne lozinke, IP adresi klijenta je zabranjen pristup sistemu na određeni period ili dok je administrator sistema ne deblokira. Na ovaj način, sistem je zaštićen od ponovljenih napada grubom silom sa jednog hosta.

Fail2ban je vrlo konfigurabilan i može se postaviti da osigura bezbroj usluga kao što su SSH, vsftpd, Apache , i Webmin.

U ovom vodiču fokusiramo se na to kako možete instalirati i konfigurirati Fail2ban na Rocky Linux i AlmaLinux.

Korak 1: Uvjerite se da je Firewalld pokrenut

Podrazumevano, Rocky dolazi sa pokrenutim Firewalld-om. Međutim, ako to nije slučaj na vašem sistemu, pokrenite Firewalld tako što ćete izvršiti:

sudo systemctl start firewalld

Zatim omogućite da se pokrene u vrijeme pokretanja:

sudo systemctl enable firewalld

Zatim provjerite status Firewalld-a

sudo systemctl status firewalld

Osim toga, možete potvrditi sva pravila Firewalld koja se trenutno primjenjuju koristeći naredbu:

sudo firewall-cmd --list-all

Korak 2: Instalirajte EPEL u Rocky Linux

Kao uslov za instalaciju fail2ban i drugih potrebnih paketa, potrebno je da instalirate EPEL spremište koje pruža dodatne visokokvalitetne pakete za distribucije zasnovane na RHEL-u.

sudo dnf install epel-release

Korak 3: Instalirajte Fail2ban u Rocky Linux

Sa instaliranim EPEL, nastavite i instalirajte fail2ban i fail2ban-firewalld paket.

sudo dnf install fail2ban fail2ban-firewalld

Ovo instalira server fail2ban i komponentu firewalld zajedno sa drugim zavisnostima.

Kada je instalacija fail2ban završena, pokrenite uslugu fail2ban.

sudo systemctl start fail2ban

I omogućite da se pokrene u vrijeme pokretanja.

sudo systemctl enable fail2ban

Status usluge fail2ban možete provjeriti pokretanjem naredbe:

sudo systemctl status fail2ban

Izlaz je potvrda da Fail2ban radi kako bismo očekivali.

Korak 4: Konfiguriranje Fail2ban u Rocky Linuxu

Idemo dalje, moramo konfigurirati fail2ban da bi radio kako je predviđeno. U idealnom slučaju, uredili bismo glavnu konfiguracijsku datoteku – /etc/fail2ban/jail.conf. Međutim, to je obeshrabreno. Kao rješenje će kopirati sadržaj konfiguracijske datoteke jail.conf u datoteku jail.local.

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Sada otvorite datoteku jail.local koristeći željeni editor.

sudo vim /etc/fail2ban/jail.local

U odjeljku [DEFAULT] provjerite imate li sljedeće postavke kako se pojavljuju.

bantime = 1h
findtime = 1h
maxretry = 5

Hajde da definišemo atribute:

  • Direktiva bantime specificira vremensko trajanje u kojem će klijent biti zabranjen nakon neuspjelih pokušaja autentifikacije.
  • Direktiva findtime je trajanje ili period unutar kojeg će fail2ban uzeti u obzir prilikom razmatranja ponovljenih pokušaja netačne lozinke.
  • Parametar maxretry je maksimalni broj pokušaja neispravne lozinke prije nego što se udaljenom klijentu blokira pristup serveru. Ovdje će klijent biti zaključan nakon 5 neuspjeha autentifikacije.

Podrazumevano, fail2ban radi sa iptables. Međutim, ovo je zastarjelo u korist firewalla. Moramo konfigurirati fail2ban da radi uz firewalld umjesto iptables.

Dakle, pokrenite sa naredbom:

sudo mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

Da biste primijenili promjene, ponovo pokrenite fail2ban:

sudo systemctl restart fail2ban

Korak 5: Osiguravanje SSH usluge pomoću Fail2ban

Po defaultu, fail2ban ne blokira nijedan udaljeni host sve dok ne omogućite konfiguraciju zatvora za uslugu koju želite osigurati. Jail konfiguracija je navedena na putu /etc/fail2ban/jail.d i nadjačat će konfiguraciju specificiranu u datoteci jail.local.

U ovom primjeru, kreirat ćemo zatvorsku konfiguracijsku datoteku za zaštitu SSH usluge. Stoga, kreirajte SSH jail datoteku.

sudo vim /etc/fail2ban/jail.d/sshd.local

Zatim zalijepite sljedeće redove:

[sshd]
enabled = true

Override the default global configuration
for specific jail sshd
bantime = 1d
maxretry = 3

U gornjoj konfiguraciji, udaljenom hostu će biti zabranjen pristup sistemu 1 dan nakon 3 neuspješna SSH pokušaja prijave. Sačuvajte promene i ponovo pokrenite uslugu fail2ban.

sudo systemctl restart fail2ban

Zatim provjerite status konfiguracije zatvora koristeći fail2ban-client uslužni program komandne linije.

sudo fail2ban-client status

Iz izlaza možemo vidjeti da imamo 1 zatvor konfiguriran za uslugu pod nazivom 'sshd'.

Osim toga, možete potvrditi maxretry vrijednost sshd jaila koristeći opciju get.

sudo fail2ban-client get sshd maxretry

3

Ispisana vrijednost 3 bi trebala odgovarati onoj koju ste naveli u datoteci sshd.local.

Korak 6: Testiranje Fail2ban konfiguracije

Nakon postavljanja fail2ban i kreiranja datoteke za konfiguraciju zatvora za SSH servis, izvršićemo probno pokretanje i simulirati 3 neuspješne prijave tako što ćemo navesti netačnu lozinku za svaki upit za lozinku.

Stoga idite na udaljeni Linux sistem i pokušajte se prijaviti koristeći pogrešnu lozinku. Nakon 3 neuspješna pokušaja, veza će biti prekinuta, a svaki naredni pokušaj ponovnog povezivanja bit će blokiran dok trajanje zabrane ne istekne.

Da biste prikupili uvid u blokirane klijentske sisteme, provjerite status zatvora.

sudo fail2ban-client status sshd

Da debanirate ili uklonite klijenta iz zatvora, izvršite naredbu:

sudo fail2ban-client unban 192.168.2.102

Još jednom provjerite status zatvora kako biste bili sigurni da klijent nije uključen u listu zabranjenih IP adresa.

sudo fail2ban-client status sshd

Kao što smo vidjeli, Fail2ban je vrlo koristan alat za odbijanje uljeza koji žele da provale vaš Linux sistem. Radi u sprezi sa Firewalldom kako bi zabranio klijentske sisteme na određeno vrijeme nakon određenog broja neuspjelih pokušaja prijave. Čineći to, pruža dodatni sloj zaštite za vaš Linux server.