
Mít Linuxový server vystavený síti je v podstatě jako lákat boty. Pokud jste nenastavili žádná bezpečnostní opatření, pravděpodobně již máte ve svých protokolech tisíce neúspěšných pokusů o přihlášení; existují automatizované stroje, které neustále zkoušejí kombinace uživatelského jména a hesla, aby se pokusily ovládnout váš počítač pomocí útoků hrubou silou.
A zde přichází na řadu Fail2ban, nástroj, který funguje jako neúnavný hlídací pes. Není to firewall v nejpřísnějším slova smyslu, ale spíše analyzuje systémové protokoly a když detekuje, že se někdo snaží vniknout do systému násilím, práskne mu dveřmi před nosem tím, že zablokuje jeho IP adresu pomocí nástrojů, jako jsou iptables nebo nftables. Podívejme se, jak jej nakonfigurovat tak, aby z vašeho serveru udělal tvrdý oříšek.
Co přesně je Fail2ban a jak funguje?
Jednoduše řečeno, Fail2ban je démon, který nepřetržitě monitoruje logovací soubory vašich služeb. Když najde podezřelé vzorce, které odpovídají předdefinovaným pravidlům, nazývaným filtry , začne počítat selhání. Pokud IP adresa dosáhne limitu povolených pokusů v určitém čase, program provede akci , která obvykle zahrnuje přidání dané IP adresy na blacklist firewallu.
Tyto konfigurace jsou uspořádány do takzvaných věznic (jailů ). Věznice je v podstatě sada pravidel aplikovaných na konkrétní službu (například SSH, Apache nebo MySQL). Tímto způsobem můžete mít velmi přísná pravidla pro vzdálený přístup a tolerantnější pravidla pro webový server, což zajišťuje automatické blokování vetřelců, aniž byste museli každých pět minut ručně kontrolovat protokoly.

Instalace dle vaší linuxové distribuce
V závislosti na používaném systému se příkaz k instalaci mírně liší, ale obecně je k dispozici téměř ve všech oficiálních repozitářích.
- V Ubuntu a Debianu: Je to velmi jednoduché, stačí jen běžet
sudo apt updatenásledujesudo apt install fail2ban. - V Rocky Linuxu nebo AlmaLinuxu: Protože se jedná o podnikové distribuce, musíte nejprve povolit repozitář EPEL pomocí
sudo dnf install epel-releasea poté nainstalujte balíček pomocísudo dnf install fail2ban fail2ban-firewalld. - V Alpine Linuxu: Použijte správce APK s
sudo apk add fail2banA protože používá OpenRC, musíte ho povolit pomocísudo rc-update add fail2ban defaulta začněte s tímsudo rc-service fail2ban start.

Hlavní konfigurace: Tajemství souboru .local
Velmi častou chybou je přímá úprava souboru. jail.confNedělejte to! Ten soubor může být při aktualizaci systému přepsán. Zlatým pravidlem je vytvořit kopii s názvem jail.localVšechny parametry, které přidáte do tohoto druhého souboru, budou mít přednost před originálem a vaše změny budou přepsány. v bezpečí před aktualizacemi.
Pro začátek můžete naklonovat původní soubor pomocí sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local a poté jej otevřete ve svém oblíbeném editoru, například nano nebo vim. V sekci [VÝCHOZÍ] Zde definujete celkové chování systému:
- zákaz: Doba, po kterou bude škodlivá IP adresa zablokována. Může být uvedena v sekundách nebo pomocí „m“ pro minuty (např. 10 min).
- najít čas: Časový interval, ve kterém Fail2ban kontroluje chyby. Pokud někdo selže 5krát za hodinu, ale doba hledání je 10 minut, nebude zablokován.
- maxretry: Počet neúspěšných pokusů povolených předtím, než systém oznámí Dost a zablokuj IP adresu.
- ignorovatip: Základní, abyste se vyhnuli zablokování sebe sama. Zde musíte zadat své veřejná IP adresa nebo váš rozsah VPN.
Ochrana konkrétních služeb krok za krokem
Jakmile jsou nakonfigurována obecná nastavení, je čas aktivovat věznice pro služby, které vás nejvíce zajímají. Aby ochrana fungovala, musíte nastavit enabled = true v příslušné části uvnitř jail.local.
SSH přístup (nejkritičtější bod)
Port 22 je cílem číslo jedna. Robustní konfigurace by definovala maxretry = 3 a bantime = 3600 (jedna hodina). Fail2ban soubor přečte. /var/log/auth.log (na Debianu/Ubuntu) nebo / var / log / zabezpečit (na CentOS/RHEL) k detekci selhání ověřování a zablokování přístupu útočníkovi.
Webové servery (Apache a Nginx)
Pokud máte webové stránky nebo internetový obchod, boti se budou snažit získat přístup k citlivým trasám, jako například /wp-admin o /login.phpMůžete si vytvořit vlastní filtry v /etc/fail2ban/filter.d/ k detekci těchto vzorců. Například k Chraňte WordPressChyby 403 nebo neúspěšné pokusy jsou monitorovány v wp-login.php, blokování IP adresy, pokud překročí limity nastavené ve věznici Apache nebo Nginx.
Databáze a FTP
V MySQL můžete sledovat protokol chyb pro frázi Uživateli byl odepřen přístupV případě FTP (jako je ProFTPD) je nezbytné zajistit, aby logpath shodujte skutečnou cestu k vašim protokolům, protože pokud Fail2ban nemůže soubor protokolu najít, ochrana jednoduše nebude fungovat.
Pokročilá správa s fail2ban-clientem
Pro rychlé změny nemusíte vždy upravovat soubory a restartovat službu. Příkaz fail2ban-client Umožňuje vám spravovat systém za chodu z konzole.
Chcete-li zjistit, které věznice jsou aktivní a kolik IP adres je blokováno, použijte sudo fail2ban-client statusPokud se chcete hlouběji ponořit do služby, jako je SSH, spusťte sudo fail2ban-client status sshdNavíc, pokud omylem Zablokovali jste kolegu Nebo můžete IP adresu rychle uvolnit sami pomocí příkazu sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Údržba a odstraňování závad
Pokud si všimnete, že Fail2ban neblokuje tak, jak by měl, nejprve se podívejte do vlastního protokolu nástroje. /var/log/fail2ban.log. Použitím tail -f V reálném čase můžete vidět, kdo je zablokován a proč.
Nezapomeňte, že Fail2ban ukládá stav zámku do databáze SQLite v /var/lib/fail2ban/fail2ban.sqlite3Pokud tedy restartujete server, zakázané IP adresy budou zrušeny. zůstane zablokovaný dokud nevyprší vaše penalizační lhůta. Kdykoli provedete změny v konfiguračních souborech, nezapomeňte tyto změny aplikovat pomocí sudo systemctl restart fail2ban.
Implementace tohoto nástroje promění váš server ze snadného cíle v automatizovanou pevnost, která snižuje zatížení CPU tím, že eliminuje škodlivý provoz na síťové vrstvě, a umožňuje vám klidně spát s vědomím, že se boti nebudou moci dovnitř dostat hrubou silou. Kombinací použití souborů .local, správy specifických jailů a neustálého monitorování protokolů získáte systém s hloubkovou obranou , který je nezbytný pro každého správce systému Linux.
