diff --git a/fail2ban/filter.d/unifi.conf b/fail2ban/filter.d/unifi.conf new file mode 100644 index 0000000..25b9064 --- /dev/null +++ b/fail2ban/filter.d/unifi.conf @@ -0,0 +1,12 @@ +# /etc/fail2ban/filter.d/unifi.conf +# +# Filtro para detectar tentativas de login com falha no Ubiquiti UniFi Controller. +# Ele procura pela mensagem específica de erro "api.err.InvalidLogin" no server.log. +# +[Definition] + +# Regex para capturar o IP de origem () da tentativa de login falha. +# Exemplo de Log: [2025-09-21 23:15:00,123] WARN api - [api] api.err.InvalidLogin: Admin[admin] login failed from 1.2.3.4 +failregex = ^.*WARN api.*api\.err\.InvalidLogin: .* login failed from $ + +ignoreregex = diff --git a/fail2ban/jail.local b/fail2ban/jail.local index 740bfa6..b7e9a05 100644 --- a/fail2ban/jail.local +++ b/fail2ban/jail.local @@ -78,3 +78,13 @@ maxretry = 2 findtime = 10m bantime = 1w # Bane scanners por uma semana. + +[unifi] + +enabled = true +port = 8443,https # A porta padrão do UniFi Controller é a 8443 +filter = unifi # Usa o filtro que acabamos de criar +logpath = /var/log/unifi/server.log # Verifique se este é o caminho correto! +maxretry = 5 # Bloqueia após 5 tentativas falhas +findtime = 10m # Dentro de uma janela de 10 minutos +bantime = 24h # Bloqueia por 24 horas. É uma interface crítica.