Úvod
Fail2ban je software, který chrání váš server před útoky hrubou silou. Dělá to monitorováním protokolů serveru a zjišťováním jakékoli podezřelé aktivity.
Program detekuje nepřiměřený počet neúspěšných pokusů a automaticky přidává nové do iptables, které blokují danou IP. Tato IP adresa (nebo hostitel) je poté na určitou dobu nebo na dobu neurčitou zablokována.
Instalace tohoto softwaru pro monitorování protokolů je proto vynikajícím způsobem, jak poskytnout další vrstvu zabezpečení vašeho serveru. Přesto může být pouze jednou součástí vašeho celkového plánu zabezpečení serveru. Prozkoumejte další opatření pomocí těchto 21 tipů pro zabezpečení serveru.
V tomto kurzu se dozvíte, jak nainstalovat a nakonfigurovat Fail2ban na váš server.

Předpoklady
- Přístup k příkazovému řádku / okno terminálu
- Přístup k uživatelskému účtu pomocí sudo nebo oprávnění root
Nainstalujte Fail2ban
Jak nainstalovat Fail2ban závisí na operačním systému běžícím na vašem serveru. Níže naleznete příkazy pro instalaci a povolení Fail2ban na Ubuntu , CentOS , Fedora a Debian .
Důležité: Fail2ban nenahrazuje softwarové firewally, jako jsou iptables. Je určen jako další vrstva zabezpečení a neměl by být náhradou za firewall.
Nainstalujte Fail2ban na Ubuntu
1. Před přidáním nových balíčků je důležité aktualizovat systémové úložiště a upgrade software. Chcete-li to provést, spusťte příkaz:
apt-get update && apt-get upgrade
Stiskněte y
potvrďte a stiskněte Enter .
2. Nyní můžete nainstalovat Fail2ban s:
apt-get install fail2ban
3. Volitelně můžete instalovat Sendmail pro e-mailovou podporu:
apt-get install sendmail
4. Dále musíte povolit přístup SSH přes firewall:
ufw allow ssh
5. Nakonec povolte bránu firewall :
ufw enable
Nainstalujte Fail2ban na CentOS
1. K instalaci Fail2ban na CentOS potřebujete úložiště EPEL . Aktualizujte systém a přidejte úložiště spuštěním:
yum update && yum install epel-release
2. S nastaveným úložištěm EPEL nainstalujte Fail2ban pomocí příkazu:
yum install fail2ban
3. Dále musíte spustit službu Fail2ban a povolit ji při spuštění:
systemctl start fail2ban
systemctl enable fail2ban
4. Pro e-mailovou podporu si můžete nainstalovat Sendmail s:
yum install sendmail
5. Chcete-li spustit a povolit Sendmail spuštění služby:
systemctl start sendmail
systemctl enable sendmail
Nainstalujte Fail2ban na Fedoru
1. Začněte aktualizací systému :
dnf update
2. Poté nainstalujte Fail2ban a Odeslat e-mail (volitelné, pokud potřebujete e-mailovou podporu):
dnf install fail2ban
dnf install sendmail
3. Protože se tyto služby na Fedoře nespouštějí automaticky, musíte je spustit a povolit s:
systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail
Nainstalujte Fail2ban na Debian
1. Aktualizujte a upgradujte systém:
apt-get update && apt-get upgrade -y
Stiskněte y a Enter pro potvrzení.
2. Poté nainstalujte Fail2ban pomocí příkazu:
apt-get install fail2ban
3. Pro e-mailovou podporu můžete také instalovat Sendmail pomocí příkazu:
apt-get install sendmail-bin sendmail
Nakonfigurujte Fail2ban
Nakonfigurujte Fail2ban úpravou následujících konfiguračních souborů:
- soubor fail2ban.local
- soubor jail.local
Nakonfigurujte soubor fail2ban.local
Fail2ban definuje svou globální konfiguraci v fail2ban.conf soubor. Soubor se skládá z výchozí konfigurace a obecně se nedoporučuje upravovat.
Všechny změny konfigurace by měly být provedeny v samostatném fail2ban.local soubor.
1. První věc, kterou musíte udělat, je zkopírovat obsah .conf soubor do .local soubor. Příkaz k tomu je:
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
2. Po tomto příkazu nebude žádný výstup. Dalším krokem je otevření souboru fail2ban.local pomocí textového editoru dle vašeho výběru:
nano fail2ban.local
3. Měli byste vidět soubor podobný obrázku níže:

V tomto příkladu vysvětlují modré komentáře každou možnost a její možné hodnoty. Bílé čáry jsou možnosti, které můžete upravit, a zahrnují:
loglevel
– Nastavte výstup na úrovni protokolu naCRITICAL,
ERROR
,WARNING
,WARNING
,INFO
neboDEBUG
.logtarget
– Nastavte cíl protokolu, kterým může být buďFILE
,SYSLOG
,STDERR
neboSTDOUT
.syslogsocket
– Nastavte soubor soketu syslog naauto
neboFILE
(toto se používá pouze v případě, želogtarget
je nastaven naSYSLOG
)socket
– Nastavte soubor soketu, který se používá ke komunikaci s démonem. Ujistěte se, že jste tento soubor neodstranili. Jeho výchozí cesta je:/var/run/fail2ban/fail2ban.sock
pidfile
– Nastavte soubor PID, který se používá k uložení ID procesu serveru fail2ban. Výchozí umístění je:/var/run/fail2ban/fail2ban.pid
Konfigurace souboru jail.local
Dalším konfiguračním souborem Fail2ban, který možná budete muset upravit, je jail.conf soubor, který obsahuje vězení definující filtry s akcemi.
Stejně jako u globální konfigurace jail.config soubor by neměl být přímo upravován. Místo toho by všechny úpravy měly být provedeny v jail.local soubor.
1. Pokud potřebujete provést nějaké změny, zkopírujte obsah .conf soubor do .local soubor:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
2. Otevřete soubor jail.local pomocí textového editoru dle vašeho výběru:
nano jail.local
3. Měli byste vidět následující obsah:

Zde můžete nastavit následující možnosti:
ignoreself
– Určete, zda má být místní IP adresa ignorována, nastavením hodnotytrue
false
.ignoreip
– Umožňuje zadat adresy IP, masky CIDR nebo hostitele DNS, kteří by měli být zakázáni. Více adres oddělte mezerou.ignorecommand
– Definujtepath/to/command
pokud by měl být jeden ignorován.
bantime
– Zadejte počet sekund, po které je hostitel zakázán (výchozí hodnota je600
)maxretry
– Počet povolených selhání před zablokováním hostitele (ve výchozím nastavení je5
).findtime
– Doba, po kterou by hostitel neměl spotřebovatmaxretry
číslo, abyste nedostali ban (obecně nastaveno na10
minut). Pokud například hostitel selže 5krát za 10 minut, bude zakázán na 600 sekund.
backend
– Určete backend použitý k získání úprav souborů. Pokud používáte CentOS nebo Fedoru, musíte backend nastavit nasystemd
. Výchozí hodnotaauto
je dostačující pro jiné operační systémy.[ssh]
– ve výchozím nastavení Fail2ban nemá povolená vězení. Proto to musíte udělat ručně přidáním vězení do konfiguračního souboru. Můžete například povolit vězení démona SSH zrušením komentáře (odstraněním#
) řádky[ssh]
aenabled = true
.

destemail
– Určuje e-mailovou adresu, na kterou chcete dostávat upozorněnísender
– Definuje e-mailovou adresu, ze které dostáváte upozornění
Další konfigurace jail.local
V souboru jail.local můžete také nastavit další konfigurace, například pro SSH a iptables. Mezi tyto možnosti patří:
banaction
– Určuje výchozí akci, která se použije přimaxretry
je dosaženo.banaction_allports
– Umožňuje označit IP adresu, která by měla být blokována v každém portu.port
– Hodnota by měla odpovídat nastavené službě. Může to býtssh
nebo číslo portu (pokud používáte alternativní port).filter
– Název souboru obsahující informace failregex, který se nachází v/etc/fail2ban/filter.d
.
Restartujte službu
Pokud jste provedli nějaké změny v souboru fail2ban.local a jail.local soubory, nezapomeňte restartovat službu fail2ban.
Chcete-lirestartovat službu fail2ban s novou konfigurací spusťte příkaz:
service fail2ban restart