iptables – hashlimits,为什么它计算所有的秒

我试图用hashlimits设置“synflood”限制,这些是我的规则片段:

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 

我想做的事 ? 我想匹配SYN数据包与一个来源IP超过此限制:

 > 10 Packets per second -j SYNFLOOD_DETECTED rule > 25 packets per minute -j SYNFLOOD_DETECTED rule > 500 packets per day -j SYNFLOOD_DETECTED rule 

为什么我要这个限制? 假设我从10k IP获得1pps,那么每秒10k包,但是从一个src ip只有一个每秒,我可以按规则25 / min(= 0.41 p / s)匹配这个包,但这可能会影响到我的正常stream量到networking服务器。

而我所看到的,如果我设置 – 哈希限制 – 高于25 /分钟,则计算为25/60 = 0.41 pps。 所以这个规则在“–hashlimit-above 10 / s”前覆盖,是否可以根据需要设置这个限制?