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


Fail2ban je besplatan alat otvorenog koda i naširoko korišten alat za sprječavanje upada koji skenira datoteke dnevnika za IP adrese koje pokazuju zlonamjerne znakove kao što je previše pogrešaka lozinke i još mnogo toga, te ih zabranjuje (ažurira firewall pravila za odbijanje IP adresa). Podrazumevano se isporučuje sa filterima za razne usluge uključujući sshd.

Pročitajte također: Početno podešavanje servera sa CentOS/RHEL 8

U ovom članku ćemo objasniti kako instalirati i konfigurirati fail2ban za zaštitu SSH i poboljšati sigurnost SSH servera od brute force napada na CentOS/RHEL 8.

Instaliranje Fail2ban na CentOS/RHEL 8

Paket fail2ban nije u službenim spremištima, ali je dostupan u EPEL spremištu. Nakon što se prijavite na vaš sistem, pristupite interfejsu komandne linije, a zatim omogućite EPEL spremište na vašem sistemu 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 tako što ćete pokrenuti sljedeću naredbu.

dnf install fail2ban

Konfiguriranje Fail2ban za zaštitu SSH

fail2ban konfiguracijski fajlovi se nalaze u /etc/fail2ban/ direktoriju, a filteri su pohranjeni u /etc/fail2ban/filter.d/ direktorij (filterska datoteka za sshd je /etc/fail2ban/filter.d/sshd.conf).

Globalna konfiguraciona datoteka za server fail2ban je /etc/fail2ban/jail.conf, međutim, nije preporučljivo mijenjati ovaj fajl direktno, jer će vjerovatno biti prepisan ili poboljšan u slučaju paketa nadograditi u budućnosti.

Kao alternativa, preporučuje se kreiranje i dodavanje vaših konfiguracija u datoteku jail.local ili zasebne datoteke .conf 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 ćemo kreirati zasebnu datoteku pod nazivom jail.local u direktoriju /etc/fail2ban/ kao što je prikazano.

vi /etc/fail2ban/jail.local

Kada se datoteka otvori, 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

Hajde da ukratko objasnimo opcije u gornjoj konfiguraciji:

  • ignoreip: specificira listu IP adresa ili imena hostova za zabranu.
  • bantime: specificira broj sekundi za koje je host banovan (tj. efektivno trajanje zabrane).
  • maxretry: specificira broj grešaka prije nego što host bude zabranjen.
  • findtime: fail2ban će zabraniti host ako je generirao “maxretry” tokom posljednjih “findtime” sekundi.
  • banakcija: zabrana radnje.
  • pozadina: specificira pozadinu koja se koristi za izmjenu datoteke dnevnika.

Gornja konfiguracija, stoga, znači da ako IP adresa nije uspjela 3 puta u posljednjih 5 minuta, zabranite je na 6 sati i zanemarite IP adresa 192.168.56.2.

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

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Nadgledanje neuspješne i zabranjene IP adrese korištenjem fail2ban-client-a

Nakon konfigurisanja fail2ban da osigura sshd, možete pratiti neuspjele i zabranjene IP adrese koristeći fail2ban-client. Da vidite trenutni status fail2ban servera, pokrenite sljedeću naredbu.

fail2ban-client status

Da nadgledate sshd zatvor, pokrenite.

fail2ban-client status sshd

Da poništite zabranu 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 sumira ovaj vodič! Ako imate bilo kakvih pitanja ili misli koje želite podijeliti o ovoj temi, ne ustručavajte se kontaktirati nas putem obrasca za povratne informacije u nastavku.