温馨提示×

Debian Nginx 安全性怎样保障

小樊
36
2025-12-25 18:16:35
栏目: 智能运维

Debian 上保障 Nginx 安全性的实用清单

一 系统与基础防护

  • 保持系统与软件包为最新,及时修补漏洞:执行 sudo apt update && sudo apt upgrade -y
  • 使用 UFWiptables 仅开放必要端口(如 22/80/443),并默认拒绝其他入站:
    • UFW 示例:sudo ufw allow 22,80,443/tcp && sudo ufw enable
    • 或按需使用:sudo ufw allow ‘Nginx Full’
  • 禁止直接使用 root 登录,采用 sudo 提权;为 SSH 启用密钥登录、禁用密码登录与 root 登录,必要时更改默认端口,降低暴力破解风险。
  • 部署 fail2ban 监控 Nginx 与 SSH 日志,自动封禁恶意 IP,减轻暴力尝试与爬虫压力。

二 Nginx 服务加固

  • 隐藏版本信息:在 http 块加入 server_tokens off;,减少信息泄露。
  • 限制可用 HTTP 方法:在需要的 serverlocation 中仅允许 GET/HEAD/POST,其余返回 444 关闭连接。
  • 配置合理超时与连接:设置如 client_body_timeout 12; client_header_timeout 12; keepalive_timeout 15; send_timeout 10;,并在 events 中合理规划 worker_connections,缓解慢速攻击与资源耗尽。
  • 强化请求与并发限制:
    • 并发连接数: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; 在对应 location 使用 limit_req zone=req_zone burst=20 nodelay;
  • 管理后台访问控制:对 /admin/ 等路径限制来源 IP 并启用 HTTP Basic 认证:
    • 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;
  • 安全响应头:统一添加
    • X-Frame-Options “SAMEORIGIN”;
    • X-XSS-Protection “1; mode=block”;
    • X-Content-Type-Options “nosniff”;
    • Referrer-Policy “strict-origin-when-cross-origin”;
    • Content-Security-Policy “default-src ‘self’ http: https: data: blob: ‘unsafe-inline’”;(可按站点策略收紧)

三 HTTPS TLS 与加密配置

  • 证书与自动续期:使用 Let’s EncryptCertbot 获取并自动配置证书:
    • 安装:sudo apt install -y certbot python3-certbot-nginx
    • 获取并配置:sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
  • 强制 HTTPS 与 HSTS:将 80 端口重定向至 443,并在 443server 块添加
    • return 301 https://$host$request_uri;
    • add_header Strict-Transport-Security “max-age=31536000; includeSubDomains” always;
  • 协议与套件:仅启用 TLSv1.2/TLSv1.3,禁用 SSLv3/TLSv1.0/TLSv1.1 与不安全套件;优先支持 ECDHE 实现 PFS(前向保密)
  • 会话与性能:启用 ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;,并开启 HTTP/2(listen 443 ssl http2;) 提升性能与安全。
  • OCSP Stapling:启用 ssl_stapling on; ssl_stapling_verify on; 并配置可用 resolver(如 8.8.8.8 8.8.4.4),减少客户端验证延迟并抵御吊销伪造。
  • 安全细节:禁用 SSL 压缩(CRIME 风险);避免使用已知弱套件与出口级套件;确保 OpenSSL 为修复 Heartbleed(CVE-2014-0160) 等漏洞的版本;如需进一步增强,可结合 HPKP(注意风险与部署要求)。

四 运行监控与维护

  • 日志与告警:使用 Logwatch 等工具定期汇总 /var/log/nginx/access.logerror.log,关注 4xx/5xx 异常、暴力路径访问与异常 User-Agent
  • 入侵防护:结合 fail2banNginxSSH 设置 jail,自动封禁反复失败的来源 IP。
  • 变更与回滚:修改 Nginx 配置前先备份,变更后用 sudo nginx -t 校验语法,再 sudo systemctl reload nginx 平滑生效;保留回滚版本以便紧急处置。
  • 持续加固:定期审计站点 CSP/Referrer-Policy 等策略,按需收紧;定期更新 Debian 安全补丁与证书,复核防火墙与访问控制规则。

0