recent模块可以跟踪整合最近一段时间内与特定条件匹配的数据包
场景:限制ssh一分钟内只能有4个NEW状态连接请求
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
将每个ssh连接添加到名为SSH的列表中
-m recent --set --name参数定义列表名字
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 --rttl --name SSH -j DROP
在60秒内,如果SSH列表中有超过4个的新SSH连接尝试,就将后续的连接请求丢弃
--seconds参数定义时间
--hitcount参数定义最大次数
--rttl参数表示如果数据包的TTL变化,则匹配数据包