O banco de dados fail2ban no meu servidor é bastante grande (420 MB).
O log do fail2ban está bastante ocupado (há uma entrada de "filtro" a cada dois segundos), mas iptables
mostra apenas alguns endereços banidos.
dbpurgeage é 86400 segundos (24 horas)
Esse tamanho é coerente com a atividade ou há algo acontecendo?
Eu suponho que se eu parar/apagar DB/start eu voltarei a um tamanho sensato, mas isso não tornará as proibições ativas permanentes?
Acabei de descobrir esse problema em meus próprios servidores. O meu
dbpurgeage
também está definido para o padrão de 24 horas, mas o meufail2ban.sqlite3
cresceu para 400 MB e tem 800.000 banimentos nos últimos 2 anos.Acontece que o fail2ban não tinha código para limpar o banco de dados até a v0.11 . Foi adicionado neste commit . dbpurgeage não faz nada antes disso.
Para ver quantos banimentos existem no DB:
Para ver a idade da sua entrada de banco de dados mais antiga:
Para limpar o banco de dados, por exemplo, mantenha apenas a última semana de dados:
A exclusão pode levar vários minutos, durante os quais o fail2ban será bloqueado se tentar acessar o banco de dados. Talvez você queira excluir em lotes menores (primeiro tudo com mais de 2 anos, depois 1 ano, etc), para dar ao fail2ban a chance de ser executado no meio e aspirar no final.