Skip to content
VDS · Bezbednost

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škaPosledicaRešenje
Izmene u jail.confIzgube se pri ažuriranjuPiši u jail.local
Tvoja adresa nije u ignoreipJednog dana ćeš banovati sam sebeDodaj je ili se poveži preko konzole u panelu
banaction ne odgovara tvom firewall-uBanovi se ne primenjujuUskladi ga sa ufw ili nftables
Filter ne odgovara formatu logaTišina umesto zaštiteProveri sa fail2ban-regex
Servis ne može da čita systemd logPrazan statusPodesi 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.