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


Fail2ban je besplatan, otvoreni izvor i široko korišten alat za sprječavanje upada koji skenira datoteke dnevnika za IP adrese koje pokazuju zlonamjerne znakove kao što je previše grešaka lozinke i još mnogo toga, te ih zabranjuje (ažurira pravila vatrozida kako bi odbio IP adrese) . Prema zadanim postavkama isporučuje se s filtrima za razne usluge, uključujući sshd.

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

Instaliranje Fail2ban na CentOS/RHEL 8

Paket fail2ban nije u službenim spremištima, ali je dostupan u spremištu EPEL. Nakon prijave u vaš sustav, pristupite sučelju naredbenog retka, a zatim omogućite spremište EPEL 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 Fail2ban paket izvođenjem sljedeće naredbe.

# dnf install fail2ban

Konfiguriranje Fail2ban za zaštitu SSH

Datoteke za konfiguraciju fail2ban nalaze se u direktoriju/etc/fail2ban /, a filtri su pohranjeni u direktoriju /etc/fail2ban/filter.d/ (datoteka filtra za sshd je /etc/fail2ban/filter.d/sshd.conf) .

Globalna konfiguracijska datoteka poslužitelja fail2ban je /etc/fail2ban/jail.conf, međutim, ne preporučuje se izravna izmjena ove datoteke, jer će vjerojatno biti prepisana ili poboljšana u slučaju nadogradnje paketa u budućnosti.

Kao alternativu, preporučuje se stvaranje i dodavanje vaših konfiguracija u datoteku jail.local ili odvojene datoteke .conf u direktoriju /etc/fail2ban/jail.d/. Imajte na umu da će konfiguracijski parametri postavljeni u jail.local nadjačati ono što je definirano u jail.conf.

Za ovaj ćemo članak stvoriti zasebnu datoteku nazvanu jail.local u direktoriju/etc/fail2ban /, kao što je prikazano.

# vi /etc/fail2ban/jail.local

Nakon što se datoteka otvori, kopirajte i zalijepite u nju sljedeću konfiguraciju. 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

Objasnimo ukratko opcije u gornjoj konfiguraciji:

  • ignoreip: određuje popis IP adresa ili imena hostova koje se ne smiju zabraniti.
  • bantime: naveden broj sekundi tijekom kojih je host zabranjen (tj. efektivno trajanje zabrane).
  • maxretry: određuje broj kvarova prije nego što host bude zabranjen.
  • findtime: fail2ban će zabraniti hostu ako je generirao "maxretry" tijekom posljednjih sekundi "findtime".
  • banakcija: zabrana djelovanja.
  • pozadina: navodi pozadinu koja se koristi za dobivanje izmjena datoteke dnevnika.

Prema tome, gornja konfiguracija znači da je IP zakazao 3 puta u zadnjih 5 minuta, zabraniti ga 6 sati i zanemariti IP adresu 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

Nadzor neuspjele i zabranjene IP adrese pomoću fail2ban-client

Nakon konfiguriranja fail2ban da osigura sshd, možete nadzirati neuspjele i zabranjene IP adrese pomoću fail2ban-klijenta. Da biste pogledali trenutni status poslužitelja fail2ban, pokrenite sljedeću naredbu.

# fail2ban-client status

Pokrenite da nadgledate sshd zatvor.

# fail2ban-client status sshd

Da biste poništili pristup IP adresi u fail2ban (u svim zatvorima i bazi podataka), pokrenite sljedeću naredbu.

# fail2ban-client unban 192.168.56.1

Za više informacija o fail2banu pročitajte sljedeće stranice s uputama.

# man jail.conf
# man fail2ban-client

To sažima ovaj vodič! Ako imate pitanja ili razmišljanja koja želite podijeliti o ovoj temi, ne ustručavajte se kontaktirati nas putem obrasca za povratne informacije u nastavku.