esta é minha primeira pergunta no serverfault;)
Meu conf: Debian 9.6, tomcat 8.5.14.0, fail2ban 0.9.6-2
Eu criei um filtro tomcat8 para detectar vários erros 404
[INCLUDES]
[Definition]
failregex = ^<HOST>.*\/.*\/.*404
ignoreregex =
[tomcat]
enabled = true
port = http,https,8080,8443
ignoreip = 127.0.0.1/8 MyIP/8 MyIP/16
bantime = 1728000
findtime = 5
filter = tomcat
logpath = /var/log/tomcat8/localhost_access_log.*.txt
maxretry = 3
O filtro funciona, mas o problema é que é possível que não haja solicitação de acesso ao meu aplicativo web tomcat durante um dia, então é possível que eu não tenha acesso de log para o dia criado pelo tomcat (notei o arquivo é criado quando há o primeiro pedido) ... Então o arquivo sobre o fail2ban está funcionando não existe ... por exemplo eu recebo este erro:
2018-11-20 04:56:11,771 fail2ban.filterpoll [18667]: ERROR Unable to get stat on /var/log/tomcat8/localhost_access_log.2018-11-19.txt because of: [Errno 2]
No such file or directory: '/var/log/tomcat8/localhost_access_log.2018-11-19.txt'
e o fail2ban para a minha prisão de gatos ...
Qual é a melhor abordagem?
em um cron, detecta se o arquivo de acesso ao log existe, se não, crie-o para o dia (abordagem de toque com o parâmetro dateTime)?
script de uma solicitação de ativação para forçar o tomcat a criar o arquivo de acesso de log e forçar o fail2ban a reiniciar?
outro?