Vyhledávání na webu

Jak nainstalovat Fail2Ban pro ochranu SSH na CentOS/RHEL 8


Fail2ban je bezplatný, open source a široce používaný nástroj prevence narušení, který prohledává soubory protokolu na adresy IP, které vykazují škodlivé znaky, jako je příliš mnoho selhání hesla a mnoho dalšího, a zakazuje je (aktualizuje bránu firewall pravidla pro odmítnutí IP adres). Ve výchozím nastavení se dodává s filtry pro různé služby včetně sshd.

Přečtěte si také: Počáteční nastavení serveru s CentOS/RHEL 8

V tomto článku vysvětlíme, jak nainstalovat a nakonfigurovat fail2ban pro ochranu SSH a zlepšení zabezpečení serveru SSH proti útokům hrubou silou na CentOS/RHEL 8.

Instalace Fail2ban na CentOS/RHEL 8

Balíček fail2ban není v oficiálních úložištích, ale je dostupný v úložišti EPEL. Po přihlášení do systému přejděte do rozhraní příkazového řádku a poté povolte úložiště EPEL ve vašem systému, jak je znázorněno.

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

Poté nainstalujte balíček Fail2ban spuštěním následujícího příkazu.

dnf install fail2ban

Konfigurace Fail2ban pro ochranu SSH

Konfigurační soubory fail2ban jsou umístěny v adresáři /etc/fail2ban/ a filtry jsou uloženy v /etc/fail2ban/filter.d/ adresář (filtrační soubor pro sshd je /etc/fail2ban/filter.d/sshd.conf).

Globální konfigurační soubor pro server fail2ban je /etc/fail2ban/jail.conf, nedoporučujeme však tento soubor přímo upravovat, protože bude pravděpodobně přepsán nebo vylepšen v případě balíčku v budoucnu upgradovat.

Alternativně se doporučuje vytvořit a přidat své konfigurace v souboru jail.local nebo samostatných souborech .conf pod /etc/fail2ban/jail. d/adresář. Všimněte si, že konfigurační parametry nastavené v jail.local přepíší vše, co je definováno v jail.conf.

Pro tento článek vytvoříme samostatný soubor s názvem jail.local v adresáři /etc/fail2ban/, jak je znázorněno na obrázku.

vi /etc/fail2ban/jail.local

Jakmile je soubor otevřen, zkopírujte a vložte do něj následující konfiguraci. Sekce [DEFAULT] obsahuje globální volby a [sshd] obsahuje parametry pro vězení sshd.


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

[sshd] 
enabled = true

Pojďme si stručně vysvětlit možnosti ve výše uvedené konfiguraci:

  • ignoreip: určuje seznam IP adres nebo názvů hostitelů, které se nemají zakázat.
  • bantime: udává počet sekund, na které je hostiteli zakázán přístup (tj. účinná doba trvání zákazu).
  • maxretry: Určuje počet selhání, než bude hostiteli zakázán přístup.
  • findtime: fail2ban zakáže hostiteli, pokud vygeneruje „maxretry“ během posledních „findtime“ sekund.
  • banction: zákaz akce.
  • backend: určuje backend použitý k získání modifikace souboru protokolu.

Výše uvedená konfigurace tedy znamená, že pokud IP selhala 3krát za posledních 5 minut, zablokujte ji na 6 hodin a ignorujte IP adresa 192.168.56.2.

Dále spusťte a povolte službu fail2ban a zkontrolujte, zda je v provozu pomocí následujícího příkazu systemctl.

systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban

Monitorování neúspěšných a zakázaných IP adres pomocí fail2ban-client

Po konfiguraci fail2ban pro zabezpečení sshd můžete sledovat neúspěšné a zakázané IP adresy pomocí fail2ban-client. Chcete-li zobrazit aktuální stav serveru fail2ban, spusťte následující příkaz.

fail2ban-client status

Chcete-li sledovat vězení sshd, spusťte.

fail2ban-client status sshd

Chcete-li zrušit zákaz IP adresy v fail2ban (ve všech vězeních a databázi), spusťte následující příkaz.

fail2ban-client unban 192.168.56.1

Pro více informací o fail2ban si přečtěte následující manuálové stránky.

man jail.conf
man fail2ban-client

To shrnuje tento návod! Máte-li jakékoli dotazy nebo myšlenky, které byste k tomuto tématu chtěli sdílet, neváhejte nás kontaktovat prostřednictvím formuláře pro zpětnou vazbu níže.