Kaip įdiegti „Fail2Ban“, kad apsaugotumėte SSH sistemoje „CentOS/RHEL 8“


„Fail2ban“ yra nemokamas, atviro kodo ir plačiai naudojamas įsilaužimų prevencijos įrankis, kuris nuskaito žurnalo failus IP adresams, kuriuose rodomi kenkėjiški ženklai, pvz., Per daug slaptažodžių gedimų, ir daug daugiau, ir juos uždraudžia (atnaujina užkardos taisykles, norėdami atmesti IP adresus) . Pagal numatytuosius nustatymus jis tiekiamas su įvairių paslaugų filtrais, įskaitant „sshd“.

Šiame straipsnyje paaiškinsime, kaip įdiegti ir sukonfigūruoti fail2ban apsaugoti SSH ir pagerinti SSH serverio saugumą nuo žiaurių jėgų atakų prieš CentOS/RHEL 8.

„Fail2ban“ diegimas „CentOS/RHEL 8“

„Fail2ban“ paketo nėra oficialiose saugyklose, tačiau jį galima rasti EPEL saugykloje. Prisijungę prie sistemos, pasiekite komandinės eilutės sąsają, tada įgalinkite savo sistemos EPEL saugyklą, kaip parodyta.

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

Tada įdiekite „Fail2ban“ paketą vykdydami šią komandą.

# dnf install fail2ban

„Fail2ban“ konfigūravimas apsaugoti SSH

„Fail2ban“ konfigūracijos failai yra kataloge/etc/fail2ban /, o filtrai saugomi kataloge /etc/fail2ban/filter.d/ (sshd filtro failas yra /etc/fail2ban/filter.d/sshd.conf) .

Visuotinis fail2ban serverio konfigūracijos failas yra /etc/fail2ban/jail.conf, tačiau nerekomenduojama tiesiogiai modifikuoti šio failo, nes jis tikriausiai bus perrašytas arba patobulintas ateityje atnaujinant paketą.

Kaip alternatyvą, rekomenduojama sukurti ir pridėti konfigūracijas faile jail.local arba atskiruose .conf failuose, esančiuose kataloge /etc/fail2ban/jail.d/. Atminkite, kad konfigūracijos parametrai, nustatyti „jail.local“, nepaisys to, kas apibrėžta „jail.conf“.

Šiame straipsnyje mes sukursime atskirą failą pavadinimu jail.local kataloge/etc/fail2ban/kaip parodyta.

# vi /etc/fail2ban/jail.local

Kai failas bus atidarytas, nukopijuokite ir įklijuokite į jį šią konfigūraciją. Skyriuje [DEFAULT] pateikiamos visuotinės parinktys, o [sshd] yra sshd kalėjimo parametrai.

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

[sshd] 
enabled = true

Trumpai paaiškinkime aukščiau pateiktos konfigūracijos parinktis:

  • ignoreip: nurodo neuždraustinų IP adresų ar pagrindinių kompiuterių vardų sąrašą.
  • bantime: nurodomas sekundžių skaičius, per kurį pagrindinis kompiuteris yra uždraustas (t. y. faktinio draudimo trukmė).
  • „maxretry“: nurodo gedimų skaičių prieš priimant pagrindinį kompiuterį.
  • „findtime“: „fail2ban“ uždraus pagrindinį kompiuterį, jei per pastarąsias „findtime“ sekundes jis sukėlė „maxretry“.
  • draudimas: veiksmų uždraudimas.
  • backend: nurodo backend, naudojamą modifikuoti žurnalo failą.

Todėl aukščiau nurodyta konfigūracija reiškia, kad jei per paskutines 5 minutes 3 kartus sugedo IP, uždrauskite jį 6 valandoms ir nepaisykite IP adreso 192.168.56.2.

Tada pradėkite ir įjunkite „fail2ban“ paslaugą ir patikrinkite, ar ji veikia ir veikia, naudodami šią komandą systemctl.

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

Nepavykusio ir uždrausto IP adreso stebėjimas naudojant fail2ban-klientą

Sukonfigūravę fail2ban saugiam sshd, galite stebėti nepavykusius ir uždraustus IP adresus naudodami fail2ban-klientą. Norėdami peržiūrėti dabartinę fail2ban serverio būseną, vykdykite šią komandą.

# fail2ban-client status

Norėdami stebėti SSD kalėjimą, paleiskite.

# fail2ban-client status sshd

Norėdami panaikinti IP adresą fail2ban faile (visuose kalėjimuose ir duomenų bazėse), vykdykite šią komandą.

# fail2ban-client unban 192.168.56.1

Norėdami gauti daugiau informacijos apie fail2ban, perskaitykite šiuos vadovo puslapius.

# man jail.conf
# man fail2ban-client

Tai apibendrina šį vadovą! Jei turite klausimų ar minčių, kuriomis norite pasidalinti šia tema, nedvejodami susisiekite su mumis naudodamiesi žemiau esančia atsiliepimų forma.