iptables LOG apenas uma vez

1

Eu corro os seguintes comandos do iptables para detectar e registrar uma varredura de porta:

iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -j LOG --log-prefix "Port Scan on INPUT: "
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -j LOG --log-prefix "Port Scan on FORWARD: "

E isso funciona muito bem! No entanto, quando executo uma varredura de porta em todas as portas 65535, meu arquivo de log aumenta em 33 megabytes. Isso ocorre porque o iptables registrará uma vez após a 20ª nova conexão de porta e todas as outras conexões depois disso.

Que tipo de comando eu teria que executar para registrar somente depois que as primeiras 20 conexões fossem feitas ou cada vez que 20 conexões fossem feitas?

    
por Dejan Zelic 19.10.2015 / 19:49

1 resposta

2

Eu descobri uma maneira de fazer isso:

iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -m limit --limit 1/m --limit-burst 1  -j LOG --log-prefix "Port Scan on INPUT: "
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --set
iptables -A FORWARD -p tcp -i eth0 -m state --state NEW -m recent --update --seconds 30 --hitcount 20 -m limit --limit 1/m --limit-burst 1 -j LOG --log-prefix "Port Scan on FORWARD: "

Basicamente, eu coloquei um limite de 1 minuto na regra depois de ser atingido na primeira vez.

    
por 19.10.2015 / 23:09