Fail2ban
Fail2ban sleduje logy a blokuje IP adresy, které se opakovaně neúspěšně přihlašují. Boti zkoušející hesla na SSH tak dostanou ban dřív, než něco uhodnou.
Jak to funguje
Fail2ban čte logy jednotlivých služeb. Když jedna IP překročí povolený počet neúspěšných pokusů za daný čas, přidá ji do firewallu a na chvíli zablokuje.
| Pojem | Význam |
|---|---|
| Jail | Sada pravidel pro jednu službu (např. sshd) |
maxretry | Kolik chyb IP toleruje |
findtime | Za jaký čas se chyby počítají |
bantime | Jak dlouho ban trvá |
ignoreip | IP, které se nikdy nebanují |
Instalace
Debian/Ubuntu
sudo apt update
sudo apt install fail2ban -ysudo systemctl enable --now fail2banKonfigurace
Nikdy neupravuj jail.conf — přepíše ho aktualizace balíčku. Vlastní nastavení
patří do jail.local, který má přednost.
[DEFAULT]
# Sem pridej svou vlastni IP, aby ses nezabanoval
ignoreip = 127.0.0.1/8 ::1 11.22.33.44
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = ssh
maxretry = 3
findtime = 10m
bantime = 1hPřidej svou IP do ignoreip. Jinak si při párkrát špatně napsaném heslu
zabanuješ vlastní přístup na server a dostaneš se zpět jen přes VNC konzoli
v panelu.
Na Debianu a Ubuntu jail [sshd] čte systémový journal. Na starších systémech
ověř, že sekce [sshd] existuje a je enabled = true — jinak fail2ban SSH
vůbec nehlídá.
Po každé změně konfigurace načti pravidla znovu:
sudo systemctl restart fail2banOvládání
# Prehled vsech jailu
sudo fail2ban-client status
# Detail konkretniho jailu vcetne zabanovanych IP
sudo fail2ban-client status sshdVýpis status sshd ukáže počet aktuálně banovaných IP i celkový počet chyb.
Odbanování IP
Zabanoval sis omylem sebe nebo kolegu? Odebereš ho ručně:
sudo fail2ban-client set sshd unbanip 11.22.33.44Trvalý ban nedělej přes bantime = -1 bezhlavě. Nasčítá se ti dlouhý seznam
IP a přehled ztratíš. Pro opakované útočníky je lepší delší, ale konečný ban.
Delší ban pro recidivisty
Fail2ban umí sledovat i vlastní ban log a tvrději trestat IP, které se vrací:
[recidive]
enabled = true
bantime = 1w
findtime = 1d
maxretry = 5Tipy
- Nejdřív si ověř přihlášení klíčem a teprve pak spoléhej na fail2ban. Chrání službu, nenahradí SSH klíče.
- Sleduj
fail2ban-client status sshdpo nasazení. Uvidíš, kolik útoků reálně chytáš. - Nezvyšuj
maxretryzbytečně. Tři pokusy stačí, ty se přihlásíš napoprvé.
Poznámka
Fail2ban dává smysl jen na VPS, kam máš přístup do systému. Na herním hostingu se o zabezpečení SSH stará BlazeHost.