Há algumas coisas que você está perdendo e precisam corrigir para que o filtro funcione:
- Dentro do seu
expressjs.confvocê definiufindtime = 600emaxretry = 5Isso significa que em um espaço de 10 minutos (600s) você precisará ter 5 tentativas fracassadas (correspondência regex) para gerar o bloco automático / rejeitar iptables regra.jail.confmanpage:
findtime time interval (in seconds) before the current time where failures will count towards a ban. maxretry number of failures that have to occur in the last findtime seconds to ban then IP.
Observando seus registros, você tem mais de 10 minutos entre a primeira entrada de log e a última entrada de log (5 tentativas) no log que você colou aqui. Primeiro: 20:49 , Último: 21:16
-
Todos os seus registros são provenientes de
127.0.0.1. Se você olhar seujail.confdentro do bloco[DEFAULT], encontrará a configuração padrãoignoreip = 127.0.0.1/8. A menos que você tenha alterado isso, é muito perigoso bloquear um endereço de host local, já que ele quebrará outros softwares usando esse endereço para comunicação interna. -
Você
expressjs.confnão tem a configuraçãodatepattern =, portanto, o fail2ban não pode adivinhar qual parte do arquivo de log é a data. Obtenha alguns exemplos dos arquivos/etc/fail2ban/filter.de você encontrará o regex de data comodatepattern = ^L %%d/%%m/%%Y - %%H:%%M:%%Soudatepattern = ^%%Y:%%m:%%d-%%H:%%M:%%S. Outro problema aqui é que sua "segunda" parte da data de registro não tem o zero à direita em sec < 10 (ex:21:16:9no seu último log) e isso precisa ser corrigido.
Dê uma olhada no wiki oficial do Fail2ban para obter exemplos e melhorar o filtro. Você tem muitas coisas para consertar.