#教程# – 用Shell脚本提取Nginx日志IP,封禁测速网站ITGOD和17CE的IP及UA头

前言

昨天去 IT 狗测速下网站,博主的 VPS 才 1 核 1G 的配置,100 多个 IP 瞬间把服务器 CPU 给搞到了 90%以上,太 TM 暴力了,多开两个页面刷一下直接就 502 了,等于直接 CC 攻击了好吧。

图片[1] - #教程# – 用Shell脚本提取Nginx日志IP,封禁测速网站ITGOD和17CE的IP及UA头 - 云线路

这里博主封禁了 itdog 和 17ce,这两个网站太暴力,封掉。其他测速站自行斟酌是否封禁,例如站长站测速是每 4 个 IP 一轮的测,不会影响网站,所以博主并没有封禁。

提取日志 IP

可以新建个网站,用测速站测一次,这样就得到 IP 了,然后用脚本把 IP 提取出来

#!/bin/bash

# 设置变量
LOG_FILE="/home/wwwlogs/yunloc.com.log"
OUTPUT_FILE="ip_list.txt"
TIME=$(date -d "now - 10 minutes" '+[%d/%b/%Y:%H:%M:%S]')
LAST_TIME=$(date '+[%d/%b/%Y:%H:%M:%S]')

# 获取 10 分钟内日志中所有 IP 地址,没有输出 IP 引号
IPS=$(awk -v start="$TIME" -v end="$LAST_TIME" '$2 > start && $2 < end{ print $1 }' "$LOG_FILE" | sort | uniq)

# 输出结果到文件
echo "$IPS" > "$OUTPUT_FILE"

echo "IP 地址已提取到 $OUTPUT_FILE 文件中。"

封禁 IP

可以利用 nginx lua 来封禁 IP,参考博主以前的文章

或者用自带的防火墙封禁

封禁 UA

IT 狗现在官网给出限制测速方法,大家可以参考官方版本

17ce 封禁就简单许多了,直接封禁 UA 头就可以了。

安装上面防火墙的可以在 /usr/local/nginx/conf/waf/wafconf/user-agent 里添加 UA 头

cdnunion_monitor

或者在 nginx 的 server 段加上

if ($http_user_agent ~* (17ce|cdnunion_monitor)) {
      return 444;
}

直接返回 444 代码

boce 的封禁也和 17ce 一样,关键字为fromBoce,把他封掉就好了

if ($http_user_agent ~* (fromBoce|cdnunion_monitor)) {
      return 444;
}

结语

博主为啥要封禁测速网站?是怕一些脑子不正常的利用测速网站来搞破坏咯。

© 本站文章随意转载,但请注明出处!
THE END
点赞10 分享
评论 抢沙发
头像
务必使用真实的邮箱地址评论,虚假邮箱的评论将不通过审核及无回复。
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容