criando uma cadeia alternativa no fail2ban para banimento manual

3

Eu tenho uma instância do fail2ban que funciona bem.

Mas também gosto de ocasionalmente examinar os logs manualmente e tentar identificar os probes do sistema que estão trabalhando em torno das minhas definições padrão do f2b.

O que eu estou procurando é como eu posso definir uma cadeia que irá durar um longo período de tempo que eu possa usar manualmente em um comando como este:

fail2ban-client set $JAIL banip $IP

Alguém pode me dar a sintaxe para especificar uma cadeia personalizada no arquivo de configuração que não é realmente acionada a partir de arquivos de log (ou pode ser uma cadeia padrão que tenha alguma condição que possa não ser ativada), que eu pode usar em uma instrução manual? O que eu quero fazer é ter um tempo de proibição muito mais longo para banimentos manuais que eu identifico pessoalmente enquanto observo os registros.

    
por Trent Three 31.12.2017 / 21:48

2 respostas

4

Veja como eu fiz isso ...

Adicionei isso à jail.local:

[manban]
enabled  = true
filter   = manban
action   = iptables[name=HTTP, port="80,443,110,995,25,465,143,585,993,587,21,22", protocol=tcp]
logpath  = /var/log/manban.log
maxretry = 1
# 1 month
bantime  = 2592000
findtime = 3600

Então eu adicionei o arquivo /etc/fail2ban/filter.d/manban.conf:

[Definition]
failregex = ^\[\w{1,3}.\w{1,3}.\d{1,2}.\d{1,2}:\d{1,2}:\d{1,2} \d{1,4}. \[error] \[client.<HOST>].File does not exist:.{1,40}roundcube.{1,200}
ignoreregex =

Eu copiei o filtro do filtro de outro filtro mas apontei para um arquivo que não existe, então eu criei um arquivo fictício:

touch /var/log/manban.log

execute o comando:

fail2ban-client reload

Agora, para banir manualmente um endereço IP por um mês, digite:

fail2ban-client set manban banip <IP>

Isso funcionou.

Agora há clientes que "aprendem" o seu bantime fail2ban e ajustam automaticamente as sondas do sistema para não serem banidos. Mas quando você olha para os logs, é óbvio que estes são sondas do sistema. Você pode atrapalhar seus sistemas criando tempos de banimento longos e extraordinários. Você também pode escrever um script que possa despejar IPs correspondentes a um determinado critério ao seu registro de banimento especial e banir o fail2ban por um longo período de tempo.

    
por 02.01.2018 / 05:05
1

Eu estava recebendo erro com a configuração acima:

iptables v1.6.0: invalid port/service 80,443,110,995,25,465,143 specified.

No caso de aplicar iptables em várias portas, a ação deve ser iptables-multiport :

[manban]
enabled  = true
filter   = manban
action   = iptables-multiport[name=HTTP, port="80,443,110,995,25,465,220,585,587,8000,9600", protocol=tcp]
logpath  = /var/log/manban.log
maxretry = 1
# 1 month
bantime  = 2592000
findtime = 3600

esta configuração funciona e atualiza adequadamente o conjunto de regras iptables.

    
por 10.09.2018 / 15:01