Nginx 日志分析

常见日志路径

1
2
3
4
/var/log/nginx/access.log
/var/log/nginx/error.log
/usr/local/nginx/logs/access.log
/usr/local/nginx/logs/error.log

access.log 常见字段

  • 源 IP。
  • 访问时间。
  • 请求方法。
  • URL。
  • HTTP 版本。
  • 状态码。
  • 响应大小。
  • Referer。
  • User-Agent。

常见攻击识别

SQL 注入

特征:

  • union select
  • and 1=1
  • or 1=1
  • sleep
  • extractvalue
  • updatexml
  • 单引号、注释符。

目录扫描

特征:

  • 同一 IP 高频访问大量路径。
  • 大量 404/403。
  • 访问 .git.envadminbackupphpinfo

弱口令爆破

特征:

  • 同一 IP 高频 POST 登录接口。
  • 状态码、响应长度相近。
  • User-Agent 固定。

文件上传攻击

特征:

  • 访问 upload 接口。
  • 上传后访问 .php.jsp.aspx 等文件。
  • 高频 POST。

WebShell 访问

特征:

  • 固定 IP 访问可疑文件。
  • 高频 POST。
  • 参数中出现命令特征。
  • 文件名异常。

常用命令

1
2
3
4
5
6
tail -f /var/log/nginx/access.log
grep "关键词" access.log
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head
grep "POST" access.log
grep -Ei "union|select|sleep|updatexml|extractvalue" access.log
grep -Ei "\.php|\.jsp|\.aspx" access.log

面试标准回答

1
2
3
Nginx 日志我主要看 access.log 和 error.log,常见路径是 /var/log/nginx/ 或 /usr/local/nginx/logs/。分析时会关注源 IP、时间、请求方法、URL、状态码、响应大小、Referer 和 User-Agent。

如果排查攻击,我会看同一 IP 的访问频率、是否访问敏感路径、是否有 SQL 注入 payload、是否大量 POST 登录接口、是否上传后访问可疑脚本文件。最后根据时间线整理攻击过程、影响范围和处置建议。