tiger-sms ChatGPT 账号/ChatGPT 代注册 OpenAI API 代充值

Shell 分析 Nginx 日志文件找出恶意 IP 教程

OpenAI API key

总会有些无聊人的会攻击你的网站,跑你 VPS 流量、试你网站密码、探测你网站源数据等等,这个老王在《利用 iftop 解决 Linux 由于带宽占用过高导致无法远程连接的问题》也分享过类似的经历,本文就给大家分享一个 Shell 脚本,分析 Nginx 日志文件找出恶意 IP(访问频次过高)。

一、Shell 分析 Nginx 日志

如果你用的 LNMP 一键脚本,那么 Nginx 日志默认在 /home/wwwlogs 下,日志中有访问时间、访问者 IP、网站 URL 等信息。

下面这个简单的 Shell 脚本可以分析 Nginx 日志文件,将最近 4000 条网站访问记录中,出现频次超过 200 次的 IP 全部找出来:

# 定义访问次数上限 200
num=200
# 定义检查日志文件中的最后 4000 行数据
check_num=4000

LOG_DIR=/home/wwwlogs
cd $LOG_DIR

LOG_FILE=laowangblog.com.nginx.log

# 筛选日志文件
IP=`tail $LOG_FILE -n $check_num|awk '{print $1}'|sort|uniq -c|sort -rn|awk '{if ($1>'$num'){print $2}}'`

for i in $IP
# 对这些 IP 的操作
do
    ....
done

二、自动化 & 封禁这些 IP

自动化自然就是借助 crontab,如何处理这些恶意 IP,自然就是通过 iptables 拉黑了, 这些教程之前老王也分享过。

如果你的垃圾 IP 特别多,也可以用 ipset,结合 iptables 也是非常方便的,自行 Google 一下就行。

赞(5)
关注我们
未经允许不得转载:老王博客 » Shell 分析 Nginx 日志文件找出恶意 IP 教程