fix: fail2ban nginx jailovi nisu citali log + podrska za reverse proxy

1) Debian/Ubuntu u jail.d/defaults-debian.conf postavlja globalni
   backend = systemd. Nasi nginx jailovi ga nisu nadjacali, pa su
   naslijedili systemd, ignorirali logpath i citali journal u kojem
   nginx access loga nema. "fail2ban-client get nginx-basicauth
   logpath" je vracao "No file is currently monitored" — jailovi
   nikad nisu banali nista, iako fail2ban-regex nad istim logom
   nalazi 48 poklapanja. Dodan eksplicitan backend = auto na oba
   nginx jaila; sshd ostaje na systemd backendu gdje mu je mjesto.

2) Novo pitanje pri instalaciji: je li server iza reverse proxyja.
   Ako da, generira se conf.d/guacamole-realip.conf sa
   set_real_ip_from / real_ip_header X-Forwarded-For. Bez toga je
   $remote_addr uvijek IP proxyja, pa bi fail2ban banirao proxy i
   zakljucao sve korisnike odjednom, rate limit bi bio jedan
   zajednicki budzet, a GeoIP bi gledao krivu adresu.

Provjereno iza Nginx Proxy Managera: direktan pristup i dalje daje
LAN IP, spoofani X-Forwarded-For s nepovjerljive adrese se ignorira,
a kroz proxy fail2ban sad biljezi stvarni javni IP klijenta.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-28 20:56:15 +02:00
parent 149ea6f8f3
commit e7265ff1d1
2 changed files with 47 additions and 1 deletions
+12 -1
View File
@@ -108,7 +108,18 @@ Skripta postavlja sljedeća pitanja redom:
Potrebni: MaxMind Account ID i License Key (besplatno).
Primjer zemalja: HR BA SI RS AT DE
6. WEB GUI
6. REVERSE PROXY
y = da, n = ne
Odgovorite DA ako je server iza Nginx Proxy Managera,
Traefika, HAProxyja ili slicnog. Trazi IP adresu proxyja.
Zasto je vazno: bez toga nginx za svaki zahtjev vidi IP
proxyja umjesto klijentovog. Posljedice su ozbiljne —
fail2ban banira sam proxy i time zakljuca SVE korisnike
odjednom, rate limit postaje jedan zajednicki budzet za
sve, a GeoIP filtrira po adresi proxyja i ne radi nista.
7. WEB GUI
y = da, n = ne
Instalira Flask web aplikaciju za upravljanje svim postavkama.
Ako da: