iptables作为linux下的软件防火墙,提供了很强大的功能,但是用好的人还是比较少的,本人也是菜鸟一只,最近在学习,顺便把学到的东西记录下来,方便以后查看,还是直入主题吧

今天学习的是recent模块

常用参数

--name    #设定列表名称,默认DEFAULT。
--rsource #源地址,此为默认。
--rdest   #目的地址
--seconds #指定时间内
--hitcount#命中次数
--set     #将地址添加进列表,并更新信息,包含地址加入的时间戳。
--rcheck  #检查地址是否在列表,以第一个匹配开始计算时间。
--update  #和rcheck类似,以最后一个匹配计算时间。
--remove  #在列表里***相应地址,后跟列表名称及地址


示例

限制80端口每分钟每个IP只能发起10个连接,正常的访问不会有影响,可以有效的屏蔽一些压力测试以及cc等***

#iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name HTTPPOOL --rcheck --seconds 60 --hitcount 10 -j DROP
#iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name HTTPPOOL --set -j ACCEPT

备忘:每个IP目标端口为80的新连接会记录在案,可在/proc/net/xt_recent/目录内查看,rcheck检查此IP是否在案及请求次数,如果超过规则就丢弃数据包,否则进入下条规则并更新列表信息。


recent还有很多的功能,不过我用不到