iptables利用ipt_recent做防刷限制(1分钟内访问超过240次记录日志并丢弃)


1、iptables 需支持ipt_recent模块


2、修改 ip_list_tot、ip_pkt_list_tot 限制

chmod 600 /sys/module/ipt_recent/parameters/ip_list_tot
echo 10240 > /sys/module/ipt_recent/parameters/ip_list_tot
chmod 600 /sys/module/ipt_recent/parameters/ip_pkt_list_tot
echo 500 > /sys/module/ipt_recent/parameters/ip_pkt_list_tot


3、建立iptables syslog 日志

#编辑/etc/syslog.conf 添加以下行

kern.=debug    /var/log/firewall/http_access.log
#新建日志目录
mkdir /var/log/firewall/
#重启服务
/etc/init.d/syslog restart


4、建立iptables策略

#建立记录表
iptables -I INPUT -p tcp --dport 80 -d 192.168.160.44 \
 -m state --state NEW -m recent --name httpuser --set
#超过限制记录日志
iptables -A INPUT -m recent --update --name httpuser --seconds 60 \
 --hitcount 240 -j LOG --log-level 5 --log-prefix 'HTTP attack: '
#超过限制DROP
iptables -A INPUT -m recent --update --name httpuser --seconds 60 \
 --hitcount 240 -j DROP
#注:查看httpuser记录 /proc/net/ipt_recent/httpuser