作者:佚名 时间:2023-12-30 12:12:48 阅读:(9)
使用ipset屏蔽ip时,需要读取指定文件的内容,然后使用ipset屏蔽ip。云梦的编程方法是这样写一个sh脚本,然后每隔一段时间执行一次,读取IP列表进行封杀。接下来云梦编程将介绍ipset来读取指定文件中的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
需求:在一分钟之内同一个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进行封禁方法的全部内容了,了解更多相关文章请关注云梦编程网!