Sustav i održavanje
Modul Sigurnost (Fail2ban)
Kompletan pregled modula Sigurnost u panelu — instalacija, tabovi (Pregled, Jailovi, Banani IP-jevi, Log, Postavke), preset jailovi, zaštita prijave i UFW integracija.
-
Što modul radi
Modul Sigurnost (ruta /fail2ban) upravlja Fail2ban servisom na serveru: automatski ban IP adresa nakon neuspjelih pokušaja (SSH, web auth, FTP, prijava na panel). Dostupan je admin korisnicima u bočnom izborniku nakon instalacije Fail2ban paketa kroz Web stack. Ako paket nije instaliran, stranica prikazuje upute za instalaciju.
-
Instalacija Fail2bana
Web stack → Instalacija → označite komponentu Fail2ban → Pregled instalacije → potvrdite. Panel instalira apt paket fail2ban i pokreće post-instalacijsku skriptu install-fail2ban.sh koja kreira uAdmin preset datoteke u /etc/fail2ban/jail.d/uadmin-*.conf i filter za panel login.
# Ručno (SSH, root) — isto kao panel: sudo /usr/local/uadmin/bin/install-stack.sh fail2ban sudo fail2ban-client status
SavjetPreporučeno je imati instaliran i UFW (modul Firewall) — banovi se tada primjenjuju kroz UFW umjesto raw iptables.
-
Preset jailovi (uAdmin)
Nakon instalacije panel automatski kreira sljedeće jailove (ovisno o instaliranim servisima). Datoteke su u /etc/fail2ban/jail.d/ s prefiksom uadmin-.
sshd — SSH brute-force (maxretry 4, bantime 24h) nginx-http-auth — Nginx HTTP auth greške (port 80/443) apache-auth — Apache auth greške (port 80/443) vsftpd — FTP neuspjeli login (maxretry 3) uadmin-panel-login — Panel login (port 10001, log: /var/log/uadmin-panel/login-failed.log) uadmin-cms-admin-login — Joomla /administrator, WordPress wp-login.php (log: /web/logs/*/proxy-access.log, access.log) maxretry 25 / 5m, bantime 2h Globalni DEFAULT (uadmin-default.conf): bantime = 1h findtime = 10m maxretry = 5 ignoreip = 127.0.0.1/8 ::1 -
Tab Pregled (Dashboard)
Prikazuje: status Fail2ban servisa (aktivan/neaktivan), ukupan broj trenutno bananih IP-jeva, broj aktivnih jailova, korišteni ban backend (ufw / iptables). Kartice s globalnim pragovima (bantime, findtime, maxretry) i pregledom jailova s brojem banova. Gumb Reload ponovno učitava konfiguraciju (fail2ban-client -t + systemctl reload).
-
Sažetak na nadzornoj ploči
Na početnoj nadzornoj ploči (/) lazy widget Fail2ban prikazuje isti sažetak bez otvaranja modula Sigurnost — broj banova, aktivne jailove i status servisa.
-
Tab Jailovi
Tablica svih jailova koje Fail2ban prijavljuje. uAdmin preset jailovi imaju link Uredi i gumb Isključi. Uređivanje otvara editor datoteke uadmin-*.conf — možete mijenjati enabled, maxretry, findtime, bantime, port, logpath itd. Prije spremanja potrebna je potvrda checkboxom. Jail sshd je označen kao zaštićen (SSH) — isključivanje traži dodatnu potvrdu jer uklanja SSH brute-force zaštitu.
SavjetJailovi koji nisu uAdmin preset (npr. ručno dodani u /etc/fail2ban/jail.local) prikazuju se u tablici, ali se ne mogu uređivati kroz panel.
-
Tab Banani IP-jevi
Popis svih trenutno bananih IP adresa po jailu. Za svaki red: gumb Unban uklanja ban za tu IP u tom jailu. Ispod tablice, po jailu s aktivnim banovima, dostupan je Unban sve u jailu. Korisno kad ste se slučajno banali s vlastite adrese ili trebate hitno otključati klijenta.
# SSH alternativa (root): sudo fail2ban-client status sshd sudo fail2ban-client set sshd unbanip 203.0.113.50 sudo fail2ban-client set uadmin-panel-login unbanip 203.0.113.50 sudo fail2ban-client set uadmin-cms-admin-login unbanip 203.0.113.50
-
Tab Log
Dva dijela: (1) Audit panela — zadnje akcije koje su admini poduzeli u modulu Sigurnost (reload, uključivanje/isključivanje jaila, unban, spremanje jaila ili globalnih postavki). (2) Fail2ban log — zadnje linije iz /var/log/fail2ban.log (tail).
-
Tab Postavke (globalni DEFAULT)
Uređivanje [DEFAULT] sekcije u /etc/fail2ban/jail.d/uadmin-default.conf: bantime (trajanje bana, npr. 1h, 24h), findtime (prozor promatranja, npr. 10m), maxretry (broj neuspjelih prije bana), ignoreip (pouzdane IP/CIDR adrese odvojene razmakom). Promjena zahtijeva potvrdu checkboxom. Nakon spremanja panel pokreće fail2ban-client -t i reload servisa.
ignoreip = 127.0.0.1/8 ::1 203.0.113.10 198.51.100.0/24
SavjetUvijek dodajte svoju fiksnu uredsku/kućnu IP u ignoreip prije agresivnih postavki — inače se možete banati sami.
-
Zaštita prijave na panel (rate limit)
Odvojeno od Fail2bana, ali dio sigurnosne priče: Postavke → Sigurnost. Laravel rate limit ograničava neuspjele pokušaje prijave po IP adresi (default 5 pokušaja u 60 sekundi). Nakon prekoračenja korisnik vidi poruku o privremenoj blokadi. Uspješna prijava resetira brojač. Svaki neuspjeli login zapisuje se u /var/log/uadmin-panel/login-failed.log — taj log koristi jail uadmin-panel-login.
# Primjer log linije: 2026-07-02 12:00:00 Login FAILED from 203.0.113.50 email=admin@localhost # Jail uadmin-panel-login (preset): maxretry = 10 findtime = 10m bantime = 24h port = 10001
-
CMS admin login (Joomla, WordPress)
Standardni jailovi nginx-http-auth i apache-auth hvataju samo HTTP Basic Auth (401). Joomla brute-force na /administrator/index.php vraća 200/302 — ne aktivira ih. uAdmin preset jail uadmin-cms-admin-login broji POST zahtjeve na /administrator i /wp-login.php u access logovima projekata. Logpath koristi glob /web/logs/*/proxy-access.log (frontend proxy) i /web/logs/*/access.log (direktni backend). Pri kreiranju novog projekta panel automatski reloada Fail2ban da prepozna novi log. Napomena: intenzivan legitiman rad u admin sučelju (mnogo POST u kratkom vremenu) može teorijski preći prag — stavite uredsku IP u ignoreip ili povećajte maxretry u Sigurnost → Jailovi.
# Primjer linije u proxy-access.log: 203.0.113.50 - - [02/Jul/2026:12:00:00 +0000] "POST /administrator/index.php HTTP/1.1" 200 4521 # Jail uadmin-cms-admin-login (preset): maxretry = 25 findtime = 5m bantime = 2h port = http,https sudo fail2ban-client status uadmin-cms-admin-login
-
UFW i Firewall modul
Kad je UFW instaliran, install-fail2ban.sh postavlja banaction = ufw. Banovi se tada vide u modulu Firewall (UFW status/rules) kao REJECT/DENY pravila koja Fail2ban dodaje. Modul Sigurnost na Pregledu prikazuje hint ako UFW nije instaliran (Fail2ban koristi iptables). Preporuka: instalirajte UFW prije Fail2bana.
-
Audit zapisnik panela
Sve akcije u modulu Sigurnost bilježe se u globalni audit zapisnik panela (Logovi → Audit): fail2ban_reload, fail2ban_jail_toggle, fail2ban_unban, fail2ban_save_jail, fail2ban_save_settings. Korisno za reviziju tko je uključio/isključio jail ili ručno unbanirao IP.
-
CLI naredbe (SSH)
Panel koristi skripte iz /usr/local/uadmin/bin/. Ručno održavanje kad nema pristupa panelu:
sudo /usr/local/uadmin/bin/fail2ban-status.sh sudo /usr/local/uadmin/bin/fail2ban-reload.sh sudo /usr/local/uadmin/bin/install-fail2ban.sh sudo fail2ban-client status sudo fail2ban-client status uadmin-panel-login sudo fail2ban-client status uadmin-cms-admin-login sudo fail2ban-client ping sudo systemctl status fail2ban sudo tail -30 /var/log/fail2ban.log sudo tail -30 /var/log/uadmin-panel/login-failed.log
-
Rješavanje problema
Servis neaktivan: systemctl start fail2ban i provjerite fail2ban-client -t. Konfiguracija ne prolazi test: često krivi banaction (ufw vs ufw-multiport) — pokrenite install-fail2ban.sh ponovno. Banali ste sami: SSH s druge IP ili konzola hypervisora → unban u modulu ili fail2ban-client set <jail> unbanip. Panel login ne radi nakon više pokušaja: rate limit (minute) ili Fail2ban ban na port 10001 (sati) — provjerite Banani IP-jevi. Ne mogu se spremiti postavke: provjerite sudoers i da www-data/uadmin PHP-FPM pool može pokrenuti skripte.