Eu tentei definir limites 'synflood' com hashlimits, esses são meus trechos de regras:
iptables -A SYNFLOOD_CHECK -p tcp --syn -m hashlimit --hashlimit-above 10/s --hashlimit-burst 6 \
--hashlimit-htable-expire $HTABLE_EXPIRE --hashlimit-mode $HASH_MODE --hashlimit-name synflood_s -j SYNFLOOD_DETECTED
iptables -A SYNFLOOD_CHECK -p tcp --syn -m hashlimit --hashlimit-above 25/min --hashlimit-burst 6 \
--hashlimit-htable-expire $HTABLE_EXPIRE --hashlimit-mode $HASH_MODE --hashlimit-name synflood_s -j SYNFLOOD_DETECTED
iptables -A SYNFLOOD_CHECK -p tcp --syn -m hashlimit --hashlimit-above 500/h --hashlimit-burst 6 \
--hashlimit-htable-expire $HTABLE_EXPIRE --hashlimit-mode $HASH_MODE --hashlimit-name synflood_m -j SYNFLOOD_DETECTED
O que eu quero fazer? Eu quero combinar pacotes SYN com um IP de origem que estão acima dos limites:
> 10 Packets per second -j SYNFLOOD_DETECTED rule
> 25 packets per minute -j SYNFLOOD_DETECTED rule
> 500 packets per day -j SYNFLOOD_DETECTED rule
Por que eu quero esse limite? Assumindo que eu recebo 1pps de 10k IP's, são 10k pacotes por segundo, mas somente um por segundo de um src ip, eu poderia casar esses pacotes pela regra 25 / min (= 0.41 p / s) mas isso poderia afetar meu tráfego normal para o servidor da Web.
E o que eu vejo, se eu definir - haslimit-acima de 25 / min, isso é calculado para 25/60 = 0,41 pps. Então, esta regra sobrescreve antes de "--hashlimit-above 10 / s", é possível fazer este limite como eu quero?
Tags iptables linux-networking