当前位置:首页 > Liunx教程 >

ipset读取指定文件内的IP进行封禁

发布时间:2019-06-14 09:03:33 作者:佚名 阅读:(14)

在使用ipset进行封禁ip的时候,需要读取指定文件内容使用ipset对ip进行封禁,接下来吾爱编程为大家介绍一下ipset读取指定文件内的IP进行封禁,有需要的小伙伴可以参考一下:

吾爱编程的做法是这样的写了一个sh的脚本,然后每隔多久执行一下读取IP列表进行封禁,脚本如下:

实例一:读取指定文件脚本

#!/bin/bash
FILES="/date/wwwroot/iplist.txt"
ip_file="/tmp/blacklist.sh"
cat ${FILES}|awk '{print "/usr/sbin/ipset add blacklist "$1""}' > ${ip_file}
chmod 777 ${ip_file}
/tmp/blacklist.sh
ipset save

实例一:读取指定nginx访问日志文件

需求:在一分钟之内同一个IP访问超过100次的直接进行封禁,一小时后自动解封

#!/bin/bash
FILES="/data/nginx/xxxxx/access.log"
DATE=`date -d '1 minutes ago' +%Y:%H:%M`
grep ${DATE} ${FILES}|awk -F'|' '{print $3}'|sort -n|uniq -c |sort -nr|head -1>/tmp/ips
NUM=`awk '{print $1}' /tmp/ips`
IP=`awk '{print $2}' /tmp/ips`
IP2=`cat /tmp/ippwd`
threshold=100
if [[ $NUM -gt $threshold ]];then
/sbin/ipset -! add forbidip $IP timeout 3600
fi
if [ -s /tmp/ippwd ];then
for i in $IP2
do
/sbin/ipset -! add forbidip $i
done
fi

欢迎分享转载→ ipset读取指定文件内的IP进行封禁

© 2015-2019 - 吾爱编程网 版权所有 苏ICP备18033726号-1关于我们 - 网站声明 - 联系我们