Kako namestiti Fail2Ban za zaščito SSH na CentOS/RHEL 8


Fail2ban je brezplačno, odprtokodno in pogosto uporabljeno orodje za preprečevanje vdorov, ki skenira dnevniške datoteke za naslove IP, ki kažejo zlonamerne znake, kot je preveč napak z geslom, in še veliko več, ter jih prepove (posodobi pravila požarnega zidu, da zavrne naslove IP) . Privzeto je dobavljen s filtri za različne storitve, vključno s sshd.

V tem članku bomo razložili, kako namestiti in konfigurirati fail2ban za zaščito SSH in izboljšati varnost strežnika SSH pred napadi surove sile na CentOS/RHEL 8.

Namestitev Fail2ban na CentOS/RHEL 8

Paket fail2ban ni v uradnih repozitorijih, je pa na voljo v repozitoriju EPEL. Po prijavi v sistem odprite vmesnik ukazne vrstice in nato v sistemu omogočite repozitorij EPEL, kot je prikazano.

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

Nato namestite paket Fail2ban, tako da zaženete naslednji ukaz.

# dnf install fail2ban

Konfiguriranje Fail2ban za zaščito SSH

Konfiguracijske datoteke fail2ban se nahajajo v imeniku/etc/fail2ban /, filtri pa so shranjeni v imeniku /etc/fail2ban/filter.d/ (datoteka filtra za sshd je /etc/fail2ban/filter.d/sshd.conf) .

Globalna konfiguracijska datoteka za strežnik fail2ban je /etc/fail2ban/jail.conf, vendar te datoteke ni priporočljivo neposredno spreminjati, saj bo v primeru nadgradnje paketa v prihodnosti verjetno prepisana ali izboljšana.

Kot drugo možnost je priporočljivo ustvariti in dodati svoje konfiguracije v datoteki jail.local ali ločiti datoteke .conf v imeniku /etc/fail2ban/jail.d/. Upoštevajte, da bodo konfiguracijski parametri, nastavljeni v jail.local, preglasili vse, kar je določeno v jail.conf.

Za ta članek bomo v imeniku/etc/fail2ban/ustvarili ločeno datoteko z imenom jail.local, kot je prikazano.

# vi /etc/fail2ban/jail.local

Ko je datoteka odprta, vanjo kopirajte in prilepite naslednjo konfiguracijo. Odsek [DEFAULT] vsebuje globalne možnosti, [sshd] pa parametre za zapor sshd.

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

[sshd] 
enabled = true

Na kratko razložimo možnosti v zgornji konfiguraciji:

  • ignoreip: določa seznam naslovov IP ali imen gostiteljev, ki jih ni treba prepovedati.
  • bantime: določeno število sekund, ko je gostitelj prepovedan (tj. dejansko trajanje prepovedi).
  • maxretry: določa število napak, preden je gostitelj prepovedan.
  • findtime: fail2ban bo prepovedal gostitelja, če je v zadnjih sekundah "findtime" ustvaril "maxretry".
  • banaction: prepoved ukrepanja.
  • zaledje: določa zaledje, ki se uporablja za spremembo datoteke dnevnika.

Zgornja konfiguracija torej pomeni, da IP v zadnjih 5 minutah trikrat odpove, ga prepovemo 6 ur in prezremo naslov IP 192.168.56.2.

Nato zaženite in za zdaj omogočite storitev fail2ban in z naslednjim ukazom systemctl preverite, ali deluje.

# systemctl start fail2ban
# systemctl enable fail2ban
# systemctl status fail2ban

Spremljanje neuspelih in prepovedanih naslovov IP z uporabo fail2ban-client

Po konfiguraciji fail2ban za zaščito sshd lahko s pomočjo odjemalca fail2ban spremljate neuspele in prepovedane naslove IP. Če si želite ogledati trenutno stanje strežnika fail2ban, zaženite naslednji ukaz.

# fail2ban-client status

Če želite spremljati zapor sshd, zaženite.

# fail2ban-client status sshd

Če želite razveljaviti naslov IP v fail2ban (v vseh zaporih in zbirki podatkov), zaženite naslednji ukaz.

# fail2ban-client unban 192.168.56.1

Za več informacij o fail2ban preberite naslednje strani z navodili.

# man jail.conf
# man fail2ban-client

To povzema ta vodnik! Če imate kakršna koli vprašanja ali misli, ki jih želite deliti o tej temi, nas prosimo kontaktirajte preko spodnjega obrazca za povratne informacije.