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.