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

8

Instalei o fail2ban como empacotado pelo Debian em um servidor sob meu controle. Desde que eu tenho alguns failregexes de antes, eu estou colocando-os no arquivo de definição de filtro local para que eles sejam considerados também. Por isso, acabo com, e. /etc/fail2ban/filter.d/sshd.conf e /etc/fail2ban/filter.d/sshd.local. Esta é a maneira que é recomendado para ser configurado e parece estar funcionando bem para o que é.

No entanto, no arquivo .local, estou realmente substituindo toda a lista de failregexes do arquivo .conf. A documentação não parece indicar que existe outra maneira de fazê-lo e obter para que funcione, eu simplesmente copiei o arquivo .conf fornecido pela distribuição para um arquivo .local e fiz algumas adições.

Seria muito bom se eu pudesse simplesmente alterar a lista, aproveitando o trabalho dos mantenedores do upstream e do Debian em ficar a par das mudanças nos regexes do filtro de entradas de log mantidos pela distribuição.

A única solução real que consigo 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 que eles são tratados como cadeias independentes (o que você esperaria com essa configuração).

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

É possível alterar as listas de failregex e ignoreregex dentro de uma definição de filtro fail2ban por meio de um arquivo local-local ou host-local, sem fazer nenhuma alteração na distribuição global ou de distribuição correspondente -substituído arquivo? Se for, então como fazer isso?

    
por a CVn 16.11.2013 / 00:15

2 respostas

4

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

[INCLUDES]

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

Então você pode pensar que poderia adicionar aqui: after = sshd.local e fazer com que ele lesse tal arquivo; quaisquer configurações nela substituiriam as existentes nesse arquivo.

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

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

    
por 17.11.2013 / 20:26
1

Eu tinha o mesmo requisito e postei isso como um problema. O autor parece estar trabalhando nisso: link .

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 cadeias da mesma forma ...

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

como 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>']
    
por 28.11.2014 / 19:04