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.