Tento tutoriál vám pomůže nainstalovat a nakonfigurovat Fail2ban na vašich systémech CentOS a RHEL 8 a Fedora. V tomto článku se také dozvíte, jak přidat jakoukoli konkrétní službu ke sledování pod fail2ban.
Krok 1 – Nainstalujte Fail2ban na CentOS 8
Nejprve si nainstalujte epel-release balíček pro konfiguraci úložiště EPEL yum na vašem systému CentOS 8. Poté nainstalujte balíček Fail2ban rpm pomocí následujících příkazů.
sudo dnf install epel-release sudo dnf install fail2ban
Krok 2 – Konfigurace Fail2ban
Fail2ban uchovává konfigurační soubory pod /etc/fail2ban adresář. ale musíme vytvořit kopii tohoto souboru jako jail.local .
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo vi /etc/fail2ban/jail.local
Nyní musíme provést nezbytné změny v jail.local soubor pro vytvoření pravidel zákazu. Upravte tento soubor ve svém oblíbeném editoru a proveďte změny v [VÝCHOZÍ] sekce.
Shell
12345678910111213141516 | [VÝCHOZÍ] # "ignoreip" může být seznam IP adres, CIDR masek nebo DNS hostitelů. Fail2ban# nezabanuje hostitele, který odpovídá adrese v tomto seznamu. Několik adres# lze definovat pomocí mezery (a/nebo čárky) separator.ignoreip =127.0.0.1/8 192.168.1.0/24 # "bantime" je počet sekund, po které je hostitel zakázán.bantime =60m # Host je zakázáno, pokud vygenerovalo „maxretry“ během posledních sekund „findtime“. podle níže uvedených # nastavení, 2 minutyfindtime =5 m # "maxretry" je počet selhání, než bude hostitel zabanován. maxretry =5 |
Krok 3 – Ochrana SSH/SFTP
Po dokončení výchozí konfigurace přejděte dolů do stejného souboru jail.local a aktualizujte [ssh-iptables] sekce, jak je uvedeno níže.
[ssh-iptables] enabled = true filter = sshd action = iptables[name=SSH, port=22, protocol=tcp] sendmail-whois[name=SSH, dest=root, [email protected], sendername="Fail2Ban"] logpath = /var/log/secure maxretry = 3
Krok 4 – Ochrana FTP
Chraňme váš server FTP (vsFTPd), vyhledejte níže uvedený záznam [vsftpd-iptables] sekce a proveďte změny, jak je uvedeno níže. Pokud nepoužíváte vsFTPd, můžete tuto sekci přeskočit.
[vsftpd-iptables] enabled = true filter = vsftpd action = iptables[name=VSFTPD, port=21, protocol=tcp] sendmail-whois[name=VSFTPD, [email protected]] logpath = /var/log/vsftpd.log maxretry = 5 bantime = 1800
Krok 5 – Restartujte službu a test
Po provedení všech změn uložte soubor a restartujte službu Fail2ban pomocí následujícího příkazu.
sudo systemctl start fail2ban.service sudo systemctl enable fail2ban.service
Pro účely testování jsem vyzkoušel SSH s nesprávnými přihlašovacími údaji z jiného počítače. Po třech špatných pokusech Fail2ban zablokoval tuto IP prostřednictvím iptables pomocí odmítnutí ICMP. Pravidla můžete vidět v iptables po zablokování IP adresy, jak je uvedeno níže. U systémů pouze s SSH se před provedením těchto testů ujistěte, že máte přístup SSH z jiné IP adresy.