Ochrana serveru před možnými útoky je základním úkolem každého správce systému. Není to tak snadné, jak se zdá, ale je to možné, pokud se naučíte nainstalovat a nakonfigurovat Fail2ban na CentOS 8. Následující průvodce bude pro tento účel velmi užitečný.
Fail2Ban
Fail2ban je nástroj Pythonu, který skenuje soubory protokolu jako /var/log/auth.log
a zakáže IP adresy provádějící příliš mnoho neúspěšných pokusů o přihlášení. Dělá to tak, že aktualizuje pravidla systémové brány firewall tak, aby odmítala nová připojení z těchto IP adres po nastavitelnou dobu.
Ve výchozím nastavení je Fail2ban považováno za hotové, protože obsahuje některá nastavení, která mu umožňují číst mnoho souborů protokolu a aplikovat pravidla ochrany.
Fail2ban, který je široce používán mnoha správci systému, může snížit riziko útoků SSH ačkoli vývojáři upozorňují, že je třeba skutečně chránit další bezpečnostní opatření. S Fail2ban však můžeme mít další vrstvu zabezpečení a udělat server o něco bezpečnějším.
Jeden detail, který nelze přehlédnout, je, že Fail2ban je opensource, takže si můžete být jisti, že jeho zdrojový kód neobsahuje zadní vrátka ani škodlivý kód.
Instalace Fail2ban na CentOS 8
Navzdory své popularitě není Fail2ban součástí oficiálních úložišť CentOS 8. Není však problém jej nainstalovat.
Zkuste tedy v terminálovém prostředí aktualizovat operační systém
sudo dnf update
Fail2ban je přítomen v úložišti EPEL. Toto úložiště, i když je mimo CentOS 8, je mnohými považováno za základní úložiště kvůli velkému počtu balíčků, které má. Také je považován za docela bezpečný a pomůže nám s tímto procesem.
Přidejte jej tedy do běžícího systému.
sudo dnf install epel-release
Jakmile je balíček nainstalován a úložiště je přidáno do systému, můžeme nainstalovat Fail2ban:
sudo dnf install fail2ban
Fail2ban je zpracován jako systémová služba, takže ji musíme spustit příkazem systemctl
sudo systemctl start fail2ban
Je dobré ji spustit se systémem jako další službu.
sudo systemctl enable fail2ban
A můžete zkontrolovat stav služby, abyste zjistili, zda byla správně spuštěna.
sudo systemctl status fail2ban
Nyní s nainstalovaným Fail2ban jej můžeme nakonfigurovat podle našich potřeb.
Konfigurace Fail2ban na CentOS 8
Před provedením některých konfigurací je vhodné vědět pár věcí o tom, jak Fail2ban spravuje své konfigurační soubory.
Ve výchozím nastavení je adresář, kde jsou uloženy konfigurační soubory Fail2ban, /etc/fail2ban/
a budou zde dva soubory, které nemusíme upravovat, /etc/fail2ban/jail.conf
a /etc/fail2ban/jail.d/00-firewalld.conf
.
Proto je doporučeným způsobem konfigurace zkopírovat celý obsah jail.conf
do souboru s názvem jail.local
ve stejném adresáři. Je to proto, že .local
soubory přepíší .conf
soubory. Je také možné vytvořit soubor od začátku.
Zda zkopírujete obsah jail.conf
nebo začněte od začátku, můžete přidat vlastní nastavení.
Některé základní konfigurace související s Fail2ban mohou být například:
- Bantitime:Čas v sekundách, po který bude IP zakázána.
- Maxretry:Počet povolených opakování, než bude zakázáno.
- Findtime:Pokud hostitel provede
maxretry
v množství času vyjádřeném vfindtime
, pak bude zakázáno. - Banaction:Akce, kterou systém provede, když zakáže hostitele.
- Backend:Odkud se berou protokoly fail2ban.
Také s ignoreip
můžete definovat IP adresu nebo rozsah, který bude Fail2ban ignorovat.
Ochrana SSH pomocí Fail2ban
Jednou z nejdůležitějších služeb pro ochranu je SSH. Chcete-li tak učinit, můžete do konfiguračního souboru přidat jail.local
hodnotu jail.local
.
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log
Tímto způsobem můžete chránit SSH rychle a snadno.
Chcete-li použít všechny změny, restartujte službu Fail2ban.
sudo systemctl restart fail2ban
Závěr
V tomto příspěvku jste se naučili, jak nakonfigurovat Fail2ban pro další zabezpečení vašeho serveru před útoky proti systémovým službám. Můžete se podívat do oficiální dokumentace Fail2ban, kde najdete mnoho různých konfigurací.