iptables自动屏蔽访问网站最频繁的IP

iptables自动屏蔽访问网站频繁的IP

屏蔽每分钟访问超过200的IP

方法1:根据访问日志(Nginx为例

#!/bin/bash

DATE=$(date +%d/%b/%Y:%H:%M)

ABNORMAL_IP=$(tail -n5000 access.log |grep $DATE |awk '{a[$1]++}END{for(i in a)if(a[i]>100)print i}')

#tail防止文件过大,读取慢,数字可调整每分钟最大的访问量。awk不能直接过滤日志,因为包含特殊字符。

for IP in $ABNORMAL_IP; do

    if [ $(iptables -vnL |grep -c "$IP") -eq 0 ]; then

        iptables -I INPUT -s $IP -j DROP

    fi

done

原文地址:https://www.cnblogs.com/zc1741845455/p/11175675.html