保持Nginx更新
最小权限原则
user nginx;
worker_processes auto;
禁用不必要的模块
--without-http_autoindex_module
隐藏Nginx版本信息
server_tokens off;
使用强加密套件
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384...';
ssl_prefer_server_ciphers on;
启用HSTS
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
限制HTTP方法
limit_except GET POST {
deny all;
}
IP访问限制
location /admin {
allow 192.168.1.0/24;
deny all;
}
速率限制
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
CSP头部
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
XSS防护
add_header X-XSS-Protection "1; mode=block";
MIME类型嗅探防护
add_header X-Content-Type-Options nosniff;
详细日志记录
log_format security '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';
定期日志分析
实时监控
Web应用防火墙
DDoS防护
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 10;
文件上传限制
client_max_body_size 10M;
配置审计
安全扫描
渗透测试
通过实施这些最佳实践,可以显著提高Nginx服务器的安全性,降低被攻击的风险。