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

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

发布时间:2023-12-30 12:12:48 作者:佚名 阅读:(9)

使用ipset屏蔽ip时,需要读取指定文件的内容,然后使用ipset屏蔽ip。云梦的编程方法是这样写一个sh脚本,然后每隔一段时间执行一次,读取IP列表进行封杀。接下来云梦编程将介绍ipset来读取指定文件中的IP来屏蔽。有需要的朋友可以参考一下:

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

1、读取指定文件脚本:

#!/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

2、读取指定nginx访问日志文件

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

#!/bin/bash
FILES="/data/wwwlogs/www.yundreams.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进行封禁方法的全部内容了,了解更多相关文章请关注云梦编程网!

© 2023 - 云梦编程网 版权所有 鲁ICP备2021017318号-4