Como o armazenamento do banco de dados do fail2ban 0.9 realmente funciona?

3

O Fail2ban 0.9 introduz o armazenamento do banco de dados para salvar as proibições de reinicialização. Mas não consigo descobrir o mecanismo real do trabalho.

Existe dbpurgeage parâmetro que controla o tempo de vida das proibições antigas, o padrão é 24 horas. Como eu vejo na pesquisa de código, o fail2ban salva uma proibição ao banco de dados com timeofban igual ao momento da proibição ser salvo. Em seguida, a cada dbpurgeage , o período remove todas as proibições com timeofban < MyTime.time() - self._purgeAge , em outras palavras, remove todas as proibições armazenadas há mais de 24 horas.

Mas e se um IP fosse banido no mês? Isso tudo significa que, com dbpurgeage = 86400 após o reinício em 24 horas, perderei todas as proibições por mais de 24 horas?

Eu só quero que todas as minhas proibições permanentes sejam preservadas em qualquer caso.

    
por Arantir 18.05.2014 / 13:10

1 resposta

1

As regras do Netfilter não são persistentes durante as reinicializações, então o Fail2ban 0.9 registra as proibições em seu banco de dados e as reinstala quando é iniciado; no entanto, ele só lembra de cada proibição para dbpurgeage segundos. Se você reinicializar seu sistema mais do que dbpurgeage segundos após uma proibição específica ser aplicada, essa proibição não será restaurada.

Esse comportamento é independente dos comprimentos das proibições. Não importa se você tem uma proibição de um mês de duração se o Fail2ban não se lembrar de restaurá-lo. Isso não é um problema se o sistema não for reinicializado durante a proibição, mas se você quiser ter certeza absoluta de que não o perderá devido a uma reinicialização, será necessário aumentar dbpurgeage . Não tenho certeza se há uma maneira fácil de desativar completamente a limpeza.

    
por 11.06.2014 / 04:26