360 Secure SkillHub
360 安全技能中心

Nginx Config Linter

核心功能涵盖Nginx配置的语法错误校验、安全风险排查(如缺失安全头、弱SSL)、性能配置检测(如Gzip、缓存设置),还支持全量审计与目录批量扫描。典型场景包括日常配置验证、CI/CD自动化检查、服务器配置审计。输入为单个.conf文件或目录,输出支持文本、JSON、Markdown格式,可按 severity 过滤,严格模式适配CI流程。

charlie-morrison
charlie-morrison
热度 54.03
最近更新 2026-05-11 17:42:36
分类:开发依赖:代码执行 / 读写文件应用场景:DevOps / 报告撰写

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add nginx-config-linter
Metadata
name
nginx-config-linter
description
Lint, validate, and audit nginx configuration files for syntax errors, security issues, and performance problems.
version
1.0.0

Nginx Config Linter

Validate and audit nginx configuration files for syntax, security, and performance issues.

Commands

Lint a config file

python3 scripts/nginx-config-linter.py lint /etc/nginx/nginx.conf

Security audit

python3 scripts/nginx-config-linter.py security /etc/nginx/nginx.conf

Performance check

python3 scripts/nginx-config-linter.py performance /etc/nginx/nginx.conf

Full audit (lint + security + performance)

python3 scripts/nginx-config-linter.py audit /etc/nginx/nginx.conf

Scan directory of configs

python3 scripts/nginx-config-linter.py audit /etc/nginx/ --recursive

Options

  • --format text|json|markdown — Output format (default: text)
  • --severity error|warning|info — Minimum severity to report (default: info)
  • --recursive — Scan directories recursively for .conf files
  • --strict — Exit code 1 on any warning or error (CI mode)

What It Checks

Syntax (12 rules)

  • Unmatched braces, missing semicolons
  • Invalid directives in wrong context
  • Duplicate server_name, duplicate location
  • Empty blocks, unreachable locations
  • Invalid listen directives
  • Conflicting try_files

Security (15 rules)

  • Missing security headers (X-Frame-Options, X-Content-Type-Options, CSP, etc.)
  • Server tokens exposed (server_tokens on)
  • Weak SSL/TLS (SSLv3, TLS 1.0/1.1, weak ciphers)
  • Missing HSTS header
  • Directory listing enabled (autoindex on)
  • Missing rate limiting
  • Permissive CORS (*) with credentials
  • Default server block missing
  • Root inside location block

Performance (10 rules)

  • Gzip not enabled or poorly configured
  • Missing keepalive settings
  • Buffer sizes too small/large
  • Missing proxy cache settings
  • No worker_connections tuning
  • Missing client_max_body_size
  • Large timeout values
  • Missing access_log off for static assets

Exit Codes

  • 0: No errors or warnings
  • 1: Errors or warnings found (or --strict with any findings)
  • 2: File not found or parse error