Fail2ban prohledá soubory protokolu pro různé služby (SSH, FTP, SMTP, Apache atd., ) a zakáže IP, která způsobuje příliš mnoho selhání hesla. Aktualizuje také pravidla brány firewall tak, aby tyto IP adresy odmítala.
Fail2ban je rámec prevence narušení napsaný v programovacím jazyce Python.
Hlavním účelem Fail2ban je zabránit útokům hrubou silou přihlášení.
Podívejte se také na náš dřívější článek o Tripwire (systém detekce narušení hostitele založený na Linuxu).
Nainstalujte Fail2ban
Chcete-li nainstalovat fail2ban ze zdroje, stáhněte si jej ze sourceforge..
Pomocí apt-get nainstalujte Fail2ban na systém založený na Debianu, jak je uvedeno níže.
# apt-get install fail2ban
Fail2ban můžete také nainstalovat ručně stažením balíčku fail2ban deb.
# dpkg -i fail2ban_0.8.1-1_all.deb
Jak nakonfigurovat fail2ban
Všechny konfigurační soubory Fail2ban jsou umístěny v adresáři /etc/fail2ban.
/etc/fail2ban/fail2ban.conf
Hlavním účelem tohoto souboru je nakonfigurovat direktivy související s protokolem fail2ban.
- Úroveň protokolu:Nastavte výstup úrovně protokolu.
- logtarget :Zadejte cestu k souboru protokolu
Akce provedené Fail2ban jsou zaznamenány v souboru /var/log/fail2ban.log. Výřečnost v souboru conf můžete změnit na jednu z:1 – ERROR, 2 – WARN, 3 – INFO nebo 4 – DEBUG.
/etc/fail2ban/jail.conf
soubor jail.conf obsahuje deklaraci konfigurací služby. Tento konfigurační soubor je rozdělen do různých kontextů. Výchozí nastavení platí pro všechny sekce.
Následující DEFAULT sekce jail.conf říká, že po pěti neúspěšných pokusech o přístup z jedné IP adresy během 600 sekund nebo 10 minut (findtime), bude tato adresa automaticky zablokována na 600 sekund (bantime).
[DEFAULT] ignoreip = 127.0.0.1 maxretry = 5 findtime = 600 bantime = 600
- ignoreip:Toto je mezerami oddělený seznam IP adres, které nelze blokovat pomocí fail2ban.
- maxretry:Maximální počet neúspěšných pokusů o přihlášení, než je hostitel zablokován funkcí fail2ban.
- bantime:Doba v sekundách, po kterou je hostitel zablokován, pokud byl zachycen fail2ban (600 sekund =10 minut).
Konfigurace služeb
Ve výchozím nastavení jsou některé služby vloženy jako šablony. Následuje příklad sekce služeb ssh.
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log action = iptables
- povoleno :Povolí kontrolu fail2ban pro službu ssh
- port:port služby (uvedený v souboru /etc/services)
- filtr:Název filtru, který má služba použít k detekci shod. Tento název odpovídá názvu souboru v ‘/etc/fail2ban/filter.d’; bez přípony „.conf“. Například:„filter =sshd“ odkazuje na „/etc/fail2ban/filter.d/sshd.conf“.
- cesta protokolu:Soubor protokolu, který fail2ban kontroluje neúspěšné pokusy o přihlášení.
- Akce:Tato možnost říká fail2ban, kterou akci má provést, jakmile se filtr shoduje. Tento název odpovídá názvu souboru v „/etc/fail2ban/action.d/“ bez přípony „.conf“. Například:‘action =iptables’ odkazuje na /etc/fail2ban/action.d/iptables.conf’.
Fail2ban bude sledovat soubor /var/log/auth.log pro neúspěšné pokusy o přístup, a pokud najde opakované neúspěšné pokusy o přihlášení ssh ze stejné IP adresy nebo hostitele, fail2ban zastaví další pokusy o přihlášení z této IP adresy/hostitele tím, že jej zablokuje pomocí fail2ban iptables firewall pravidlo.
Filtry Fail2ban
Adresář /etc/fail2ban/filter.d obsahuje regulární výrazy, které se používají k detekci pokusů o vloupání, selhání hesla atd. pro různé služby.
Například:
- sshd.conf – Fail2ban související filtry ssh
- apache-auth.conf – filtry služeb apache Fail2ban
Můžeme také přidat svůj vlastní regulární výraz, abychom našli nežádoucí akci.
Akce Fail2ban
Adresář /etc/fail2ban/action.d obsahuje různé skripty definující akce, které se provedou, jakmile se filtr shoduje. Pro každou službu je povolen pouze jeden filtr, ale je možné zadat několik akcí na samostatných řádcích.
Například:
- IPtables.conf – blokovat a odblokovat IP adresu
- Mail.conf – Odesílání pošty nakonfigurovanému uživateli
Spuštění/zastavení služby Fail2ban
Po provedení změn konfigurace zastavte a spusťte démona Fail2ban, jak je znázorněno níže.
# /etc/init.d/fail2ban stop # /etc/init.d/fail2ban start