返回列表 发布新帖
查看: 26|回复: 0

如何通过 access.log 排查恶意请求或攻击行为

发表于 8 小时前 | 查看全部 |阅读模式

这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 傲来云 于 2025-5-9 12:24 编辑

网站突然变慢、服务器资源飙升、负载高居不下?很多时候不是服务器问题,而是遇到了恶意刷站、爬虫、CC攻击等情况。
access.log 是 Nginx/Apache 自动记录的网站访问日志,通过分析它,我们能快速判断是否被恶意请求骚扰,以下是我自己常用的一些排查方法,分享给大家。

access.log 是什么?
Nginx 的访问日志默认路径:
  1. /var/log/nginx/access.log
复制代码
每一行记录一次用户请求,比如这样:
  1. 192.168.1.10 - - [08/May/2025:10:01:22 +0800] "GET /index.html HTTP/1.1" 200 1024 "-" "Mozilla/5.0"
复制代码
我们可以从中提取出访问 IP、请求时间、页面路径、状态码、UA 等信息。


实用分析命令
1. 找出访问最多的 IP
  1. awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20
复制代码
用来快速排查是否有某个 IP 异常刷请求。
2. 查看某个 IP 的行为
  1. grep "1.2.3.4" /var/log/nginx/access.log
复制代码
可查看这个 IP 都访问了哪些路径,是否持续请求同一个页面。
3. 查看最常被访问的页面
  1. awk '{print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -20
复制代码
可以发现某个接口、图片、JS 是否被反复请求,比如 wp-login.php 就是被暴力破解的高发页面。
4. 只看今天的日志(配合日期)
  1. grep "$(date +%d/%b/%Y)" /var/log/nginx/access.log
复制代码
方便你只分析当日流量情况。
5. 查看请求频率(秒级请求)
  1. awk '{print $4}' access.log | cut -d: -f2-4 | uniq -c | sort -nr | head
复制代码
可以看到每秒的请求量,判断是否短时间被刷。

常见攻击表现

类型特征表现应对建议
CC攻击某IP大量访问某页面封IP,设置限速、WAF防护
爬虫抓站UA明显是Python、Go等使用 robots.txt 或封UA
暴力破解不断请求 wp-login.php、admin改登录路径、加验证码
扫描漏洞访问奇怪路径(如 /phpmyadmin)屏蔽路径、关闭无用端口


日常防御建议
宝塔用户可安装防火墙插件,设置 IP/UA 黑名单
配置 Nginx 的 limit_req_zone 做限速
日志建议定期分析+归档,避免堆积
配合 CDN,可屏蔽大量无效请求源头

最后总结
access.log 是最基础、最有价值的排查工具,不依赖任何第三方平台,只要会基本的 Shell 命令,就能迅速发现异常请求。

欢迎大家分享你是怎么处理日志和攻击的,也欢迎补充你遇到的例子,一起交流!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2025 Suike Tech All Rights Reserved. 随客交流社区 (备案号:津ICP备19010126号) |Processed in 0.102517 second(s), 6 queries , Gzip On, MemCached On.
关灯 在本版发帖返回顶部
快速回复 返回顶部 返回列表