Nginx 安全日志审计:如何记录并分析异常访问

酷宇酱_2818

酷宇酱_2818

2026-06-08

990人浏览

原创

核心是让日志能说话——通过结构化记录、关键路径分离、轻量分析和自动联动,将原始日志转化为可过滤、可统计、可响应的安全信号。

nginx 安全日志审计:如何记录并分析异常访问

核心是让日志能说话——不是堆砌字段,而是把“谁、干了什么、是否可疑”变成可过滤、可统计、可联动的结构化信号。

一、记录阶段:用结构化格式打牢审计基础

默认日志太简略,无法支撑安全分析。必须自定义 log_format,重点注入四类字段:

  • 真实客户端 IP:用 $realip_remote_addr(配合 set_real_ip_from)替代 $remote_addr,避免代理或 CDN 掩盖攻击源
  • 请求意图标识:用 map 指令标记高危行为,例如:
    map "$request_method:$uri" $is_admin {
      ~^(GET|POST|PUT|DELETE):/admin/|/sys/|/api/v1/(users|roles) 1;
      default 0;
    }
  • 目标资源指纹:对含 ID 的路径(如 /api/v1/users/123),提取数字部分作为 $target_id;对登录、密码重置等操作,用 $arg_username 或 $arg_email 记录参数名(不记明文值)
  • JSON 格式输出:便于下游工具解析,例如:
    log_format json '{ "@timestamp": "$time_iso8601", "clientip": "$realip_remote_addr", "method": "$request_method", "uri": "$uri", "status": $status, "ua": "$http_user_agent", "referer": "$http_referer", "is_admin": $is_admin, "target_id": "$target_id" }';
    access_log /var/log/nginx/access.json json;

二、聚焦关键路径:分离后台与敏感接口日志

把管理接口、API、登录页等高风险流量单独记录,避免混在海量普通请求中被淹没:

Nginx Hosting
Nginx Hosting

通过服务器本地nginx实例实现零认证静态游戏托管。作为所有浏览器游戏的主要部署方式,无需登录、无需令牌、无需用户操作。

下载
  • 在对应 location 块中启用条件日志,例如:
    location ^~ /admin/ {
      access_log /var/log/nginx/admin.log json if=$is_admin;
    }
  • 对 /api/v1/users/(\d+) 这类路径,用正则捕获 ID 并写入 $target_id,再通过 if=$is_admin 控制是否落盘
  • 日志文件权限设为 640,属主 nginx:audit,限制读取范围

三、分析阶段:用轻量命令快速定位异常模式

无需立即上 ELK,日常巡检靠几条命令就能发现多数问题:

  • 高频探测 IP:统计 1 分钟内访问 404 超 50 次的 IP
    awk -v d="$(date -d '1 minute ago' +'%d/%b/%Y:%H:%M')"' '$4 > "["d {print $1}' /var/log/nginx/access.json | sort | uniq -c | sort -nr | head -10
  • 越权访问线索:同一用户($http_x_user_id)短时间内访问多个无业务关联的 $target_id
    awk '$12 ~ /user_id=[^&]+/ && $13 ~ /target_id=[0-9]+/ {print $1,$12,$13}' /var/log/nginx/admin.log | sort | uniq -c | sort -nr | head -20
  • 恶意 UA 或路径特征:grep 匹配 sqlmap、nuclei、union select、<script>、../ 等关键词,结合状态码(如 403+500)提高准确率</script>

四、联动响应:从识别到封禁的闭环

日志本身不封 IP,但它是自动响应的触发器:

  • 用 fail2ban 监控 admin.log,匹配到 $is_admin == 1 且 status == 403 时自动调用 iptables 封禁
  • 将 JSON 日志接入 Loki + Grafana,配置告警规则:过去 5 分钟内同一 clientip 触发 is_admin=1 且 status=500 ≥ 3 次 → 发送企业微信告警
  • 对接云防火墙 API:当日志分析平台识别出扫描团伙(如 10 个 IP 共同访问 /wp-admin/),批量推送 IP 列表至 WAF 黑名单

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

nginx nginx访问日志

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

403

5

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3567

6

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

2023.08.04

6305

6

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

581

5

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.07.09

1496

5

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

2024.08.07

3958

3

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

122

12

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

2026.01.13

477

23

Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建
Nginx跨平台安装实操指南:Windows、macOS与Linux环境快速搭建

本指南详解Nginx在Windows、macOS及Linux系统的安装全流程。涵盖官方包解压、Homebrew一键部署、APT/YUM源配置及Docker容器化方案。无论新手或开发者,均可快速搭建运行环境,掌握跨平台核心指令,为后续配置与调优奠定坚实基础。

2026.03.16

159

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

nginx手册
nginx手册

共0课时 | 0人学习

进程与SOCKET
进程与SOCKET

共6课时 | 0.5万人学习