Suricata e fail2ban | Xentoo Blog#


Para bloquear endereços IP com base no fast.log do Suricata, utilize o seguinte filtro:

[INCLUDES]
before = common.conf

[DEFAULT]
_daemon = suricata

[Definition]
datepattern = ^%%m/%%d/%%Y-%%H:%%M:%%S
failregex = <HOST>:[0-9]* ->
ignoreregex =

Na configuração do jail, altere o tipo de bloqueio de REJECT para DROP.

Editado em 24/03/2023:#

Recomenda-se utilizar a ação iptables-ipset-proto6-allports, que utiliza o ipset. Isso torna as regras do iptables mais legíveis e, segundo algumas fontes, mais rápidas. Para isso, edite o jail.conf e substitua a ação banaction_allports por iptables-ipset-proto6-allports:

[suricata]
enabled = true
filter = suricata
logpath = /var/log/suricata/fast.log
findtime = 3h
action = iptables-ipset-proto6-allports

Para tráfego de entrada e de encaminhamento:#

Se for necessário aplicar a ação em tráfego de entrada e encaminhamento, defina ações separadas:

[suricata]
enabled = true
filter = suricata
logpath = /var/log/suricata/fast.log
findtime = 3h
action = %(banaction_allports)s[actname="suricata_i", chain="INPUT"]
         %(banaction_allports)s[actname="suricata_f", chain="FORWARD"]

Ação personalizada para todos os protocolos e portas:#

Para criar uma ação que se aplica a todos os protocolos e portas, utilize a seguinte configuração:

[INCLUDES]
before = iptables-common.conf

[Definition]
actionstart = <iptables> -N f2b-<name>
              <iptables> -A f2b-<name> -j <returntype>
              <iptables> -I <chain> -j f2b-<name>

actionstop = <iptables> -D <chain> -j f2b-<name>
             <actionflush>
             <iptables> -X f2b-<name>

actioncheck = <iptables> -n -L <chain> | grep -q 'f2b-<name>[ \t]'

actionban = <iptables> -I f2b-<name> 1 -s <ip> -j <blocktype>

actionunban = <iptables> -D f2b-<name> -s <ip> -j <blocktype>

[Init]

Com isso, o bloqueio de IPs identificados pelo Suricata estará configurado.


Bloqueio via Rota#

Como alternativa, é possível bloquear IPs com base em uma rota, tornando o IP inalcançável para todas as conexões:

ip route add unreachable <IP>

Essa abordagem bloqueia todo o tráfego de um IP ao torná-lo inacessível ao nível de roteamento.


Fonte: Xentoo Blog - Suricata e fail2ban