Como * adicionar * regras na definição de filtro fail2ban local?


10

Instalei o fail2ban conforme fornecido pelo Debian em um servidor sob meu controle. Como tenho alguns erros de falha anteriores, os estou colocando no arquivo de definição de filtro local para que eles também sejam considerados. Portanto, acabo com, por exemplo, /etc/fail2ban/filter.d/sshd.conf e /etc/fail2ban/filter.d/sshd.local. É assim que é recomendável configurar e parece estar funcionando bem para o que é.

No entanto, no arquivo .local, na verdade estou substituindo toda a lista de erros de falha do arquivo .conf. A documentação não parece indicar que há outra maneira de fazê-lo e, para fazê-lo funcionar, simplesmente copiei o arquivo .conf fornecido pela distribuição em um arquivo .local e fiz algumas adições.

Seria muito bom se eu pudesse simplesmente alterar a lista, beneficiando-me do trabalho dos mantenedores upstream e Debian em manter-se a par das mudanças nos regexes dos filtros de entrada de log mantidos pela distribuição.

A única solução real em que posso pensar é criar duas cadeias, uma usando a configuração fornecida pela distribuição e outra usando a minha. Isso parece ter a desvantagem (bastante significativa) de serem tratados como prisões independentes (o que você esperaria com essa configuração).

Certamente não posso ser o único que deseja apenas adicionar alguns dos meus próprios erros a uma coleção já existente, com um mínimo de problemas de manutenção.

É possível alterar as listas de failregex e ignoreregex em uma definição de filtro fail2ban por meio de um arquivo local do site ou local do host, sem fazer alterações no arquivo global ou fornecido pela distribuição correspondente? Se for, então como fazê-lo?

Respostas:


4

Vamos dar uma olhada em parte do /etc/fail2ban/filter.d/sshd.confarquivo.

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
before = common.conf

Então, você pode pensar que pode adicionar aqui: after = sshd.locale fazer com que ele leia esse arquivo; quaisquer configurações nele substituirão as deste arquivo.

E isso funciona. Exceto que você não pode simplesmente alterar entradas failregexou qualquer outra diretiva; você só pode substituí-los.

Seu sentimento está correto. Esta é definitivamente uma falha nos formatos de arquivo de configuração fail2ban. Eu reclamaria com o desenvolvedor.


2

Eu tinha o mesmo requisito e o publiquei como um problema. O autor parece estar trabalhando nele: https://github.com/fail2ban/fail2ban/issues/867 .

Uma vez mesclado, deve funcionar assim (este exemplo é cortesia do desenvolvedor, Serg Brester):

# filter test.conf:
[Definition]
failregex = failure test 1 (filter.d/test.conf) <HOST>

# filter test.local:
[Definition]
failregex = %(known/failregex)s
            failure test 2 (filter.d/test.local) <HOST>

e regexes podem ser adicionados nas prisões da mesma maneira ...

# jail.local
[test3known-interp]
filter=test
enabled = true
failregex = %(known/failregex)s
            failure test 3 (jail.local) <HOST>

para um resultado de:

$ bin/fail2ban-client -d -c config | grep addfail
['set', 'test3known-interp', 'addfailregex', 'failure test 1 (filter.d/test.conf)]
['set', 'test3known-interp', 'addfailregex', 'failure test 2 (filter.d/test.local)]
['set', 'test3known-interp', 'addfailregex', 'failure test 3 (jail.local) <HOST>']
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.