Debian Nginx安全配置指南
/etc/nginx/nginx.conf),在http块中添加server_tokens off;,关闭响应头中的Nginx版本号,防止攻击者根据版本号查找已知漏洞。server或http块中添加以下指令,增强浏览器安全防护:add_header X-Frame-Options "SAMEORIGIN";(防止点击劫持)、add_header X-XSS-Protection "1;mode=block";(启用浏览器XSS防护)、add_header X-Content-Type-Options "nosniff";(防止资源类型混淆攻击)、add_header Referrer-Policy "strict-origin-when-cross-origin";(控制引用地址信息传递)、add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'";(限制资源加载来源,防范XSS)。limit_conn_zone和limit_req_zone指令限制单个IP的并发连接数和请求频率,防范DoS攻击。例如:limit_conn_zone $binary_remote_addr zone=addr:10m;(定义共享内存区域)、limit_conn addr 100;(限制每个IP最多100个并发连接);limit_req_zone $binary_remote_addr zone=req_zone:10m rate=10r/s burst=20 nodelay;(限制每秒10个请求,突发20个请求)。/admin/)等敏感路径,使用allow/deny指令限制IP访问,并启用基本认证。例如: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; }。ssl_certificate指向证书路径,ssl_certificate_key指向私钥路径),并通过if语句将HTTP请求($scheme != "https")重定向到HTTPS:listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; if ($scheme != "https") { return 301 https://$server_name$request_uri; }。HIGH:!aNULL:!MD5)。例如:ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;。Strict-Transport-Security头强制浏览器在指定时间内(如1年)使用HTTPS访问,防止降级攻击。例如: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;。sudo apt install ufw),允许必要端口(HTTP 80、HTTPS 443、SSH 22),并启用防火墙:sudo ufw allow 'Nginx Full'(允许HTTP/HTTPS)、sudo ufw allow 22/tcp(允许SSH)、sudo ufw enable(启用防火墙)。sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT; sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT; sudo iptables -A INPUT -j DROP。sudo apt update && sudo apt upgrade -y。sudo代替直接登录root,减少root账户暴露风险。access_log)和错误日志(error_log),记录请求详情和错误信息。例如:access_log /var/log/nginx/yourdomain.com.access.log; error_log /var/log/nginx/yourdomain.com.error.log;。tail -f /var/log/nginx/error.log实时查看错误日志,或通过工具(如Logwatch)汇总分析日志,及时发现异常行为(如大量404请求、暴力破解)。sudo apt install fail2ban)防范暴力破解,通过jail.local配置针对Nginx的防护规则(如限制登录尝试次数);使用Prometheus+Grafana监控Nginx性能和安全指标(如连接数、请求速率)。