Mostramos como usar o Fail2Ban para repelir ataques ao servidor neste tutorial. Por padrão o Fail2Ban usa o IPtables, criando regras dinâmicas e adicionando-as ao firewall.
Aquela configuração está ok, mas em alguns casos acontece um conflito entre as regras já existentes no servidor e as do Fail2Ban. Quando a ferramenta avalia uma conexão e faz o bloqueio, acontece de a mesma conexão já ter sido bloqueada por outra regra gerando muitas linhas de aviso extras no log.
Não se preocupe muito, o ataque será repelido de qualquer forma, mas podemos fazer uma configuração alternativa para que não apareçam linhas como esta no fail2ban.log “fail2ban.actions: WARNING [ssh] 43.229.53.61 already banned”. Vamos substituir o filtro IPTables pelo IP Route.
Dentro do diretório /etc/fail2ban/action.d/ vamos criar um arquivo chamado route.conf com o seguinte conteúdo:
# Fail2Ban configuration file: route.conf
[Definition]
actionban = ip route add unreachable <ip>
actionunban = ip route del unreachable <ip>
Em seguida edite o arquivo /etc/fail2ban/jail.local e adicione o seguinte bloco no início (se você seguiu o tutorial sobre segurança no servidor de email provavelmente já criou uma seção DEFAULT no início do arquivo, então só adicione o banaction). Veja como o bloco deve ser configurado:
[DEFAULT]
#
# ACTIONS
#
# Default banning action (e.g. iptables, iptables-new,
# iptables-multiport, shorewall, etc) It is used to define
# action_* variables. Can be overridden globally or per
# section within jail.local file
banaction = route
#
# JAILS
#
Após salvar o arquivo reinicie o Fail2Ban:
> /etc/init.d/fail2ban restart
A partir de agora ao invés de usar o IPTables bloqueando a conexão, o Fail2Ban executará um IP Route desviando a conexão com um retorno network is unreachable.
Para ver a lista de regras ativas do IP Route execute o seguinte comando:
> ip route show table all
*Lembrando que isso só deve ser usado em casos de conflitos com regras já existentes de firewall.