Fail2ban protiv brute force napada na lozinku
Kako da instaliraš i podesiš Fail2ban: blokiranje brute force napada na SSH i veb forme, stavljanje svojih adresa na belu listu, provera da radi i odblokiranje sebe.
Ažurirano 23. avgust 2026.
Fail2ban čita logove, broji neuspešne pokušaje prijave sa jedne adrese i privremeno je blokira pravilom u firewall-u. Ne zamenjuje prijavu ključem, ali uklanja većinu pozadinskog brute-force saobraćaja i skida opterećenje sa tvojih logova.
Instalacija i osnovna konfiguracija
apt install -y fail2ban
Koristi svoj fajl, /etc/fail2ban/jail.local — izmene u jail.conf prepisuju se pri ažuriranju:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
ignoreip = 127.0.0.1/8 203.0.113.5
banaction = ufw
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 24h
systemctl enable --now fail2ban
fail2ban-client status
fail2ban-client status sshd
Stavi svoju kućnu ili kancelarijsku adresu u ignoreip — to je tvoje osiguranje da sam sebe ne banuješ. Ako se tvoja adresa promeni, konzola u panelu na /hosting/vds/m/<id> ostaje tvoja sigurna mreža: radi bez obzira na mrežu i pravila.
banaction mora da odgovara tvom firewall-u: ufw za ufw, nftables-multiport za nftables.
Gde da proveriš rezultat
fail2ban-client status sshd
tail -f /var/log/fail2ban.log
journalctl -u fail2ban -n 50
Status prikazuje broj neuspešnih pokušaja i listu banovanih adresa. Na javnoj adresi dnevni broj u stotinama je normalan, a ne znak ciljanog napada.
Odbanuj adresu (uključujući i svoju):
fail2ban-client set sshd unbanip 203.0.113.5
Zaštita van SSH-a
Fail2ban može da radi sa svakim logom koji prikazuje neuspešne pokušaje.
[nginx-http-auth]
enabled = true
[nginx-limit-req]
enabled = true
logpath = /var/log/nginx/error.log
[postfix-sasl]
enabled = true
Za svoju aplikaciju biće ti potreban filter — fajl u /etc/fail2ban/filter.d/ sa regularnim izrazom u kojem je adresa označena kao <HOST>:
[Definition]
failregex = ^.*login failed.*ip=<HOST>.*$
ignoreregex =
Testiraj izraz na stvarnom logu:
fail2ban-regex /var/log/myapp.log /etc/fail2ban/filter.d/myapp.conf
Ova komanda pokazuje koliko se linija poklopilo. Nula poklapanja znači da je pravilo pogrešno — a zaštita koja tiho ne radi gora je od nikakve.
Česte greške
| Greška | Posledica | Rešenje |
|---|---|---|
Izmene u jail.conf | Izgube se pri ažuriranju | Piši u jail.local |
Tvoja adresa nije u ignoreip | Jednog dana ćeš banovati sam sebe | Dodaj je ili se poveži preko konzole u panelu |
banaction ne odgovara tvom firewall-u | Banovi se ne primenjuju | Uskladi ga sa ufw ili nftables |
| Filter ne odgovara formatu loga | Tišina umesto zaštite | Proveri sa fail2ban-regex |
| Servis ne može da čita systemd log | Prazan status | Podesi backend = systemd |
Testiraj zaista: namerno unesi pogrešnu lozinku potreban broj puta sa spoljne adrese i potvrdi da završi na listi banovanih. Nepodešen fail2ban stvara lažni osećaj sigurnosti.
Zaokruži to ograničavanjem brzine konekcija u samom firewall-u — ufw limit 22/tcp.