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还有很多的功能,不过我用不到
转载于:https://blog.51cto.com/zhangxz/1423015