Press "Enter" to skip to content

Instalace Fail2ban na Ubuntu

Zechy 0

Když už si člověk v dobré víře vytvoří vlastní VPS, zjišťuje, tedy alespoň já, že se na něj v jednom kuse snaží nějaký robot připojit… Hádají samozřejmě uživatele a heslo jedno za druhým.

Jeden takový můj server se evidentně těmto robotům podařilo po pár letech zkompromitovat, neboť začal útočit na ostatní v síti. A do dnes nevím odkud to z toho serveru chodilo…

Kromě dostatečně silného hesla lze toto útočníkům ztížit ještě jedním způsobem.

Fail2ban

Server sice sám od sebe útočníka po pěti neúspěšných pokusech odpojí, ale to je tak vše co udělá. Útočník se prostě připojí znova a jede.

Fail2ban je celkem jednoduchý doplněk pro váš server, který tomuto chování teprve přidá grády. Pokud ve stanovém počtu pokusů útočník heslo neuhádne, je zablokován na námi stanovenou dobu.

$ sudo apt install -y fail2ban
$ sudo systemctl start fail2ban
$ sudo systemctl enable fail2ban

Klasicky tedy nainstalujeme, nastartujeme. A jelikož potřebujeme aby nám to běželo nonstop na pozadí, povolíme jako systémovou službu.

Konfigurace

Pro konfiguraci vytvoříme nový soubor

$ sudo nano /etc/fail2ban/jail.local

Tímto konfiguračním souborem budeme moci říkat, co má fail2ban hlídat za cesty, pro hlídání robotů na SSH naplníme soubor následovně:

[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1w

Na portu 22 nám tak teď bude sedět fail2ban a hlídat úspěšnost všech pokusů, pokud se z nějaké IP adresy třikrát někdo netrefí do hesla, bude zablokován. A na jak dlouho, to nám definuje bantime, zde je možné zadat buď vteřiny nebo kombinace jako právě 1w, který útočníka zablokuje na jeden týden.

Nesmíme samozřejmě zapomenout službu restartovat:

$ systemctl restart fail2ban

I mistr tesař se občas utne

Ani nepočítám, kolikrát jsem si zdržel nějakou distribuci nebo ztížil přístup na server, protože se mi prostě na tři pokusy nepodařilo zadat správné heslo…

Když už člověk sám sebe zablokuje, je zde jednoduché řešení. Vlézt si na stroj v jiné síti (prostě mít jinou IP) a odblokovat se. Je samozřejmě nutné vědět, jakou máte IP adresu.

sudo fail2ban-client set sshd unbanip 1.1.1.1

IP adresu si samozřejmě lze teoreticky vyčíst z logu /var/log/auth.log, pokud je ale u vás pokusu o připojení mnoho, může se snadno stát, že svoji IP adresu ani podle času nenajdete.

Důvěřuj mi

Pokud ovšem někdo zapomíná až moc, je možnost si ještě zavést prevenci proti vlastní hlavně a do našeho konfiguračního souboru připsat ignoreip. Pomocí toho příkazu si můžeme přidat vlastní IP do ignore list, a hesla si můžeme plést do haleluja.

ignoreip = 1.1.1.1

Je samozřejmě dobré mít na paměti, že je nejlepší mít tuto IP adresu na pevno přidělenou.

Napsat komentář