Debian Nginx配置安全策略有哪些
导读:Debian 上 Nginx 的安全策略清单 一 基础安全与信息泄露防护 隐藏版本号:在 /etc/nginx/nginx.conf 的 http 块 添加 server_tokens off;,避免泄露 Nginx 版本信息。修改后用...
Debian 上 Nginx 的安全策略清单
一 基础安全与信息泄露防护
- 隐藏版本号:在 /etc/nginx/nginx.conf 的 http 块 添加 server_tokens off; ,避免泄露 Nginx 版本信息。修改后用 nginx -t 校验并 reload。
- 安全响应头:在 server 或 http 块统一添加关键安全头,建议包含:X-Frame-Options “SAMEORIGIN”(防点击劫持)、X-XSS-Protection “1; mode=block”(浏览器 XSS 过滤)、X-Content-Type-Options “nosniff”(防 MIME 嗅探)、Referrer-Policy “strict-origin-when-cross-origin”(控制 Referer 信息)、Content-Security-Policy(按站点策略收紧,示例见下文)。
- 禁止访问敏感文件与目录:对 .git、.ht、.env 等敏感路径统一 deny all; ,防止源码、配置泄露。
- 自定义错误页面:使用 error_page 403/404/50x 指向内部页面,避免暴露堆栈与目录结构。
- 文件与目录权限:网站根目录建议 root:www-data 750,仅对静态资源目录开放 644/755,禁止上传目录执行权限。
二 访问控制与速率限制
- 敏感路径白名单:对 /admin、/api 等路径使用 allow/deny 限制来源 IP,并叠加 HTTP Basic Auth。示例:
- 生成密码文件:sudo htpasswd -c /etc/nginx/.htpasswd username
- 配置片段:
location /admin/ { allow 192.168.1.0/24; allow 10.0.0.0/8; deny all; auth_basic "Restricted Access"; auth_basic_user_file /etc/nginx/.htpasswd; }
- 连接与请求限速:在 http 块定义共享内存区域并应用限流,缓解 DoS/暴力破解。示例:
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 100; limit_req_zone $binary_remote_addr zone=req_zone:10m rate=10r/s burst=20 nodelay; limit_req zone=req_zone burst=20 nodelay; - 请求大小限制:在 server 或 location 设置 client_max_body_size(如 2M/20M),防止超大上传导致资源耗尽。
三 加密传输与证书管理
- 强制 HTTPS:将 80 端口重定向至 443,并在 443 启用 HTTP/2。示例:
server { listen 80; server_name yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; } - 获取证书:使用 Certbot 自动申请与续期:sudo apt install certbot python3-certbot-nginx & & sudo certbot --nginx -d yourdomain.com。
- TLS 参数优化:仅启用 TLSv1.2/TLSv1.3,优先服务器端套件,开启会话缓存与会话超时,提升安全与性能。示例:
ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'HIGH:!aNULL:!MD5:!RC4:!3DES'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 1h; - HSTS 与 OCSP Stapling:
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 5s;
四 系统与网络层加固
- 防火墙:使用 UFW 仅放行必要端口(如 22/80/443),默认拒绝入站。示例:sudo ufw allow 80/tcp; sudo ufw allow 443/tcp; sudo ufw enable。
- SSH 安全:禁用 root 远程登录与密码认证,改用 SSH 密钥;必要时修改默认端口。示例:
- PermitRootLogin no、PasswordAuthentication no
- 重启服务:sudo systemctl restart sshd
- 服务最小化:关闭未使用的服务与端口,减少攻击面。
- 入侵防护:部署 Fail2Ban 监控 Nginx/SSH 日志,自动封禁恶意来源 IP。
五 运行时防护与运维建议
- 文件上传安全:限制上传大小(如 client_max_body_size),将上传目录与可执行目录分离,禁用脚本执行,校验文件类型与内容。
- 后端保护:作为反向代理时,限制请求方法(如仅 GET/POST),设置 proxy_read_timeout、连接复用与缓冲限制,隐藏后端真实信息(如 proxy_hide_header X-Powered-By; )。
- 日志与监控:开启并轮转 access/error 日志,结合 Logwatch/Fail2Ban 做异常检测与封禁;定期审计配置与依赖。
- 持续更新:保持 Debian 与 Nginx 等组件为最新稳定版,及时修补漏洞。
- 安全提示:CSP 策略需结合站点实际调整,示例为较宽松的起步策略:default-src ‘self’ http: https: data: blob: ‘unsafe-inline’; ,上线前应逐步收紧并测试兼容性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Nginx配置安全策略有哪些
本文地址: https://pptw.com/jishu/783666.html
