Kako instalirati Fail2Ban za zaštitu SSH na CentOS/RHEL 8


Fail2ban je besplatan, otvorenog koda i naširoko korišten alat za sprječavanje upada koji skenira datoteke dnevnika u potrazi za IP adresama koje pokazuju zlonamjerne znakove kao što je previše neuspjelih zaporki i još mnogo toga, te ih zabranjuje (ažurira vatrozid pravila za odbijanje IP adresa). Prema zadanim postavkama isporučuje se s filtrima za razne usluge uključujući sshd.

Pročitajte također: Početno postavljanje poslužitelja s CentOS/RHEL 8

U ovom ćemo članku objasniti kako instalirati i konfigurirati fail2ban za zaštitu SSH i poboljšati sigurnost SSH poslužitelja od brutalnih napada na CentOS/RHEL 8.

Instalacija Fail2ban na CentOS/RHEL 8

Paket fail2ban nije u službenim repozitoriju, ali je dostupan u EPEL repozitoriju. Nakon što se prijavite u svoj sustav, pristupite sučelju naredbenog retka, zatim omogućite EPEL repozitorij na vašem sustavu kao što je prikazano.

dnf install epel-release
OR
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Nakon toga instalirajte paket Fail2ban pokretanjem sljedeće naredbe.

dnf install fail2ban

Konfiguriranje Fail2ban za zaštitu SSH

Konfiguracijske datoteke fail2ban nalaze se u direktoriju /etc/fail2ban/, a filtri su pohranjeni u /etc/fail2ban/filter.d/ direktorij (datoteka filtera za sshd je /etc/fail2ban/filter.d/sshd.conf).

Globalna konfiguracijska datoteka za fail2ban poslužitelj je /etc/fail2ban/jail.conf, međutim, ne preporučuje se izravno mijenjanje ove datoteke, jer će vjerojatno biti prebrisana ili poboljšana u slučaju paketa nadogradite u budućnosti.

Kao alternativa, preporučuje se kreiranje i dodavanje vaših konfiguracija u datoteci jail.local ili zasebnim .conf datotekama pod /etc/fail2ban/jail. d/ imenik. Imajte na umu da će konfiguracijski parametri postavljeni u jail.local nadjačati sve što je definirano u jail.conf.

Za ovaj članak izradit ćemo zasebnu datoteku pod nazivom jail.local u direktoriju /etc/fail2ban/ kao što je prikazano.

vi /etc/fail2ban/jail.local

Nakon što je datoteka otvorena, kopirajte i zalijepite sljedeću konfiguraciju u nju. Odjeljak [DEFAULT] sadrži globalne opcije, a [sshd] sadrži parametre za sshd zatvor.


[DEFAULT] 
ignoreip = 192.168.56.2/24
bantime  = 21600
findtime  = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd] 
enabled = true

Ukratko objasnimo opcije u gornjoj konfiguraciji:

  • ignoreip: navodi popis IP adresa ili imena hostova koje ne treba zabraniti.
  • bantime: određuje broj sekundi na koje je host zabranjen (tj. efektivno trajanje bana).
  • maxretry: određuje broj neuspjeha prije nego što host dobije zabranu.
  • findtime: fail2ban će zabraniti host ako je generirao “maxretry” tijekom zadnjih “findtime” sekundi.
  • banaction: zabrana akcije.
  • pozadina: određuje pozadinu koja se koristi za dobivanje izmjena datoteke dnevnika.

Gornja konfiguracija stoga znači da ako IP ne uspije 3 puta u zadnjih 5 minuta, zabraniti ga na 6 sati i zanemariti IP adresa 192.168.56.2.

Zatim pokrenite i omogućite uslugu fail2ban za sada i provjerite radi li i radi pomoću sljedeće naredbe systemctl.

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Praćenje neuspjelih i zabranjenih IP adresa pomoću fail2ban-klijenta

Nakon konfiguracije fail2ban za siguran sshd, možete nadzirati neuspjele i zabranjene IP adrese pomoću fail2ban-klijenta. Za pregled trenutnog statusa fail2ban poslužitelja, pokrenite sljedeću naredbu.

fail2ban-client status

Za nadzor sshd zatvora, pokrenite.

fail2ban-client status sshd

Za poništavanje zabrane IP adrese u fail2ban (u svim zatvorima i bazi podataka), pokrenite sljedeću naredbu.

fail2ban-client unban 192.168.56.1

Za više informacija o fail2ban, pročitajte sljedeće man stranice.

man jail.conf
man fail2ban-client

To sažima ovaj vodič! Ako imate pitanja ili misli koje želite podijeliti o ovoj temi, slobodno nam se obratite putem obrasca za povratne informacije u nastavku.