隐藏Nginx版本号并关闭server_tokens,限制目录浏览与敏感文件访问,配置HTTPS及强加密策略,设置安全响应头防范XSS和点击劫持,通过限流规则防御DDoS攻击,结合防火墙与日志审计实现持续防护。
加固Nginx服务器是提升Linux系统安全性的关键环节。攻击者常通过Web服务漏洞入侵系统,因此对Nginx进行合理配置和权限控制非常必要。以下为实用且可操作的加固步骤,适用于大多数生产环境。
隐藏Nginx版本号和服务器标识
暴露Nginx版本信息会增加被针对性攻击的风险。应关闭版本显示并隐藏服务器标识。
- 编辑Nginx主配置文件(通常位于/etc/nginx/nginx.conf)
- 在http{}块中添加:server_tokens off;
- 重启Nginx服务使更改生效:systemctl restart nginx
完成后,响应头中的Server: nginx/1.x.x将变为Server: nginx,减少信息泄露。
限制访问权限与目录浏览
默认开启的目录列表功能可能暴露敏感文件路径,需手动关闭并设置访问控制。
- 检查各server块或location配置中是否包含autoindex on;,如有则改为off
- 对敏感目录(如配置、日志、备份)使用deny规则:
location ~* /. {
deny all;
}location ~* ~$ {
deny all;
}
上述规则禁止访问以点开头的隐藏文件和vim临时文件,防止配置泄露。
启用HTTPS并配置强加密策略
明文HTTP传输存在中间人攻击风险,必须部署SSL/TLS加密连接。
- 使用Let's Encrypt等可信CA签发证书,避免自签名证书
- 在server块中加载证书并强制跳转HTTPS:
listen 443 ssl http2;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
ssl_prefer_server_ciphers on;
- 将HTTP请求重定向到HTTPS:
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
配置安全响应头增强防护
利用HTTP响应头可有效缓解XSS、点击劫持等常见Web攻击。
- 在server或location块中添加以下头部:
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Strict-Transport-Security "max-age=31536000" always;
这些设置分别用于禁止页面嵌套、阻止MIME类型嗅探、启用浏览器XSS过滤和强制HTTPS访问。
限制请求速率与连接数
防止单个IP发起DDoS或暴力破解攻击,需设置合理的限流策略。
- 在http块中定义限流区域:
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
- 在需要保护的location中应用:
location /login {
limit_req zone=api burst=20 nodelay;
}
此配置限制每个IP每秒最多10个请求,突发允许20个,超出则拒绝。
基本上就这些。定期更新Nginx版本、结合防火墙(如iptables或ufw)限制端口访问,并配合日志审计(如fail2ban),能进一步提升整体安全性。安全不是一次性的任务,而是持续的过程。
linux node nginx 防火墙 浏览器 端口 ssl ai 配置文件 linux系统 nginx xss location vim http https ssl linux ddos