该功能配置了iptables以保护特定端口免受DOS攻击。该功能限制每段时间间隔的连接个数,以便在特定端口设置新的连接。
该功能不适用于未加载ipt_recent iptables模块的服务器。通常用于Monolithic内核服务器。VPS服务器管理员要咨询VPS主机供应商其服务器是否有iptables模块。
默认情况下,ipt_recent 只跟踪最后100个IP地址。可以在/proc/net/ipt_recent/* 文件查看被跟踪的IP地址,其中端口编号为文件名。
PORTFLOOD设置句法:
PORTFLOOD是一张用逗号隔开的列表,包括:
port;protocol;hit count*;interval seconds
因此,设置PORTFLOOD= "22;tcp;5;300,80;tcp;20;5" 表示:
1. 如果300秒内有5个以上连接到tcp端口22的连接,则至少在发现最后一个数据包300秒后阻止该IP地址访问端口22,即在该阻止被取消前有300秒的"安静" 期。
2. 如果5秒内有20个以上连接到tcp端口80的连接,则至少在发现最后一个数据包5秒后阻止该IP地址访问端口80,即在该阻止被取消前有5秒的"安静" 期。
可以在iptables man 页面找到更多有关ipt_recent模块的信息,地址http://snowman.net/projects/ipt_recent/
注意:在使用该模块时,已阻止的IP地址不会出现在任何iptables链。您可以操作每个模块文档的/proc/net/ipt_recent/* files 查看或删除当前被阻止且尚未被解除阻止的IP地址。
重启csf可以重新设置ipt_recent表格和删除其所有的内容。
注意:使用ipt_recent有以下限制:
1. 默认情况下,每张表格只记录100个地址(我们通过modprobe努力增加到1000个)
2. 默认情况下,每个地址只记录20个数据包
*这表示您要保持数据包个数在20以内。