一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

怎样在 Nginx 中配置针对静态资源文件的访问防火墙

时间:2026-06-18 09:17:46 编辑:袖梨 来源:一聚教程网

Nginx可通过原生指令实现应用层访问控制:关闭目录浏览(autoindex off)、限制HTTP方法(仅GET/HEAD)、按IP黑白名单控制(allow/deny顺序生效),必要时集成ModSecurity与OWASP CRS增强防护。

Nginx 本身不是网络层防火墙,但它能通过原生指令组合实现面向静态资源的访问控制,效果接近轻量级应用层防火墙。关键不在于装额外模块,而在于用好 location 块内的规则逻辑。

关闭目录浏览,防止资源意外暴露
静态目录若未配置首页(如 index.html),默认可能列出全部文件名,泄露备份文件、配置片段或敏感路径。
在对应 location 中明确禁用:

  • autoindex off;
  • 若需临时启用(如内网调试),必须叠加 IP 限制或基础认证,不可对公网开放。

只允许合法请求方法
静态资源只需响应 GET 和 HEAD 请求。POST、PUT、DELETE 等方法无业务意义,且常被扫描工具滥用。
添加方法过滤:

  • if ($request_method !~ ^(GET|HEAD)$) { return 405; }
  • 这条 if 指令必须放在 location 块内,避免在 server 或 http 级别使用,否则可能引发重写冲突。

按 IP 实施黑白名单控制
适用于管理后台静态页、灰度资源、内网接口文档等场景。规则按书写顺序匹配,先写的优先生效。
例如限制仅特定 IP 访问 /admin-assets/

  • location /admin-assets/ { allow 192.168.1.100; allow 203.0.113.45; deny all; }
  • 屏蔽已知恶意段:deny 198.51.100.0/24;
  • 注意:deny all 必须放在最后,否则会提前截断后续 allow 规则。

集成 ModSecurity 做深度防护(可选)
当需要防御 SQL 注入、XSS、路径遍历等攻击时,可启用开源 WAF 引擎 ModSecurity。

  • 安装模块(以 CentOS Stream 为例):sudo dnf install nginx-mod-modsecurity
  • 在 server 或 http 块中启用:
    • modsecurity on;
    • modsecurity_rules_file /etc/nginx/modsecurity.conf;
  • 推荐搭配 OWASP Core Rule Set(CRS),它已覆盖主流攻击特征,无需手写复杂正则。

不复杂但容易忽略

热门栏目