Como estou tentando criar uma regra para Fail2ban que me parece ausente por um longo tempo, já que estou muito nervoso no passado, também estou disposto a enviá-la ao mundo :-)
O que foi feito?
- Já criou um arquivo em fail2ban/filter/named-antispam.conf
- Criei com conteúdo
#cat filter.d/named-antispam.conf
[Definition]
prefregex = ([a-zA-Z][a-zA-Z][a-zA-Z])\s([0-9]|[0-9][0-9])\s([0-9][0-9]):([0-9][0-9]:[0-9][0-9])
failregex = ^rate limit drop all response to <HOST>$
e jail.conf
#Disabled for Writing this Articel
[named-antispam]
enabled = false
filter = named-antispam
logpath = /var/log/named/rate.log
bantime = 2628000
maxretry = 30
findtime = 60
- verifiquei o que acontece com o fail2ban se eu habilitá-lo e configurá-lo para depurar?
2021-01-26 11:25:19,461 fail2ban.filterpyinotify[14180]: DEBUG Event queue size: 16
2021-01-26 11:25:19,462 fail2ban.filterpyinotify[14180]: DEBUG <_RawEvent cookie=0 mask=0x2 name='' wd=2 >
Se eu desabilitar a regra posso definir debug sem esse erro - então me parece que tenho algum tipo de erro que não consigo descobrir e por isso pergunto aqui. e no final - sim, eu tenho muitas entradas no meu log, mas o fail2ban não se importa
Você não forneceu qual é o problema basicamente, nem um trecho de log com mensagens que você deseja capturar no filtro, nem a tentativa
fail2ban-regex -v
de encontrar com o filtro.Acho que a mensagem se parece com:
Então aqui estão 2 coisas a serem observadas - primeiro o IP está depois do cliente (aqui
192.0.2.100
), e no final ele tem uma sub-rede (notação IP/CIDR, aqui192.0.2.0/24
).Se você quiser banir uma sub-rede (se seu fail2ban e banaction escolhido puderem banir sub-redes), você pode usar dependendo da sua versão:
ou isso (se o seu fail2ban suportar
<SUBNET>
):ou isto:
Você também pode banir o IP em vez da sub-rede e usar este:
Você também pode verificar com
fail2ban-regex
, por exemplo:ou para testar o filtro com um arquivo de log, use isto:
Quanto ao seu
prefregex
efailregex
- eles simplesmente não estão corretos. Nem prefregex nem failregex devem conter uma parte com correspondência de timestampdatepattern
(leia um tutorial em nosso wiki ou manual , ele contém: NOTA: ofailregex
será aplicado à parte restante da mensagem apósprefregex
o processamento (se especificado), que por sua vez ocorre apósdatepattern
o processamento (pelo qual a string de timestamp que corresponde ao melhor padrão, é cortada da mensagem).Também
prefregex
faz sentido, se você precisar de alguma pré-filtragem, por exemplo, você tem mais de um failregex (e tal regex será aplicado em toda a parte da linha ou na parte RE correspondente entre<F-CONTENT>
e</F-CONTENT>
, se for especificado. Se não houver pré-filtragem esperado,prefregex
faz pouco sentido.De qualquer forma, se você precisar por algum motivo, ficaria assim: