当前位置:首页 > 服务器技术 > 正文

Nginx安全加固指南(从零开始保护你的Web服务器)

随着网络攻击日益频繁,保护Web服务器的安全变得尤为重要。Nginx作为一款高性能的Web服务器和反向代理服务器,被广泛使用。但默认配置往往不够安全。本教程将手把手教你如何对Nginx进行安全加固,即使是小白也能轻松上手!

Nginx安全加固指南(从零开始保护你的Web服务器) Nginx安全加固 Web服务器安全 防止DDoS攻击 HTTPS配置 第1张

一、隐藏Nginx版本号

暴露服务器版本信息可能让攻击者更容易找到已知漏洞。我们可以通过修改配置文件来隐藏它。

编辑 /etc/nginx/nginx.conf 文件,在 http 块中添加或修改以下内容:

server_tokens off;  

保存后重启Nginx:sudo systemctl reload nginx

二、配置HTTPS(启用SSL/TLS)

使用HTTPS可以加密客户端与服务器之间的通信,防止中间人攻击。这是HTTPS配置的关键一步。

首先,获取SSL证书(可使用免费的Let's Encrypt)。然后在站点配置中启用SSL:

server {    listen 443 ssl http2;    server_name example.com;    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 off;    # 其他配置...}  

同时建议设置HTTP自动跳转到HTTPS:

server {    listen 80;    server_name example.com;    return 301 https://$host$request_uri;}  

三、限制请求速率(防CC/DDoS攻击)

通过限制每个IP的请求频率,可以有效缓解暴力破解和小型DDoS攻击,这是防止DDoS攻击的重要手段。

http 块中添加限流配置:

limit_req_zone $binary_remote_addr zone=login:10m rate=1r/s;  

然后在需要保护的 location 中应用:

location /login {    limit_req zone=login burst=5 nodelay;    # 其他配置...}  

四、禁用不必要的模块和服务

减少攻击面是Web服务器安全的基本原则。编译Nginx时可禁用不需要的模块(如autoindex、status等)。若使用包管理器安装,可通过配置关闭相关功能:

# 禁用目录浏览location / {    autoindex off;}# 限制访问敏感文件location ~ /\. {    deny all;}  

五、定期更新与日志监控

保持Nginx版本最新可修复已知漏洞。同时,定期检查访问日志和错误日志,有助于及时发现异常行为。

查看日志命令示例:

tail -f /var/log/nginx/access.log  

结语

通过以上步骤,你可以显著提升Nginx服务器的安全性。记住,Nginx安全加固不是一次性任务,而是一个持续的过程。结合防火墙、WAF(Web应用防火墙)等工具,构建多层防御体系,才能更有效地保护你的网站和用户数据。

安全无小事,从今天开始加固你的Nginx吧!