隐藏版本信息与敏感标识
通过server_tokens off;指令关闭Nginx响应头中的版本号显示,避免攻击者根据版本信息针对性发起攻击;进一步可使用headers-more-nginx-module模块彻底移除Server: nginx标识,降低信息泄露风险。
严格访问控制与权限管理
allow/deny指令限制敏感接口(如后台管理页面)的IP访问范围,例如仅允许可信IP段访问;nginx)启动Nginx进程,通过user指令指定,减少权限滥用风险;autoindex off;),防止目录结构及文件泄露;通过location指令限制对.conf、.log、.bak等敏感文件的访问,例如location ~* \.(conf|log|bak)$ { deny all; }。SSL/TLS加密与协议强化
ssl_protocols TLSv1.3;),提升数据传输安全性;ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH;,并通过ssl_prefer_server_ciphers on;让服务器优先使用强套件;return 301 https://$host$request_uri;将HTTP请求重定向至HTTPS,避免明文传输;add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";头部,强制浏览器使用HTTPS,防止降级攻击。请求限制与防DDoS攻击
limit_conn_zone定义共享内存区域(如limit_conn_zone $binary_remote_addr zone=addr:10m;),通过limit_conn addr 1;限制单个IP的最大并发连接数为1;limit_req_zone定义请求速率限制(如limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=1r/s;),结合limit_req zone=req_limit_per_ip burst=5;允许突发5个请求,防止CC/DDoS攻击;client_body_timeout(请求体超时)、client_header_timeout(请求头超时)、keepalive_timeout(长连接超时)等参数,例如设置为10s、10s、5s,快速释放闲置连接,降低资源消耗。安全头部增强
添加以下响应头防御常见Web攻击:
add_header X-Content-Type-Options "nosniff";,防止浏览器 MIME 类型嗅探;add_header X-Frame-Options "SAMEORIGIN";,防止点击劫持攻击;add_header Content-Security-Policy "default-src 'self';",限制资源加载来源,防范XSS攻击;add_header X-XSS-Protection "1; mode=block";,启用浏览器XSS过滤功能。模块与日志管理
autoindex、status),减少攻击面;access_log)和错误日志(error_log),记录客户端IP、请求时间、状态码等关键字段,便于后续分析攻击行为;定期检查日志,及时发现异常请求。系统级防护与运维规范
iptables或firewalld限制仅开放必要端口(如80、443),阻止非法IP访问;nginx.conf)权限设置为640(所有者可读写,组用户可读),避免敏感信息泄露;nginx -V检查编译参数,确保未包含高危模块;