ubuntu

Ubuntu下Nginx安全设置怎么做

小樊
46
2025-09-05 08:03:38
栏目: 智能运维

以下是Ubuntu下Nginx的安全设置要点:

  1. 基础系统加固

    • 更新系统补丁:sudo apt update && sudo apt upgrade -y
    • 最小化安装:移除不必要的软件包sudo apt autoremove --purge
    • 配置防火墙(UFW):
      sudo ufw enable  
      sudo ufw allow 22/tcp  # SSH  
      sudo ufw allow 80/tcp  # HTTP(可选)  
      sudo ufw allow 443/tcp # HTTPS  
      
  2. Nginx核心安全配置

    • 隐藏版本信息:在/etc/nginx/nginx.conf中添加server_tokens off;
    • 启用HTTPS
      • 安装Certbot获取免费SSL证书:sudo apt install certbot python3-certbot-nginx,然后运行sudo certbot --nginx -d example.com
      • 配置HTTP跳转HTTPS:在/etc/nginx/sites-available/default中添加重定向规则。
    • SSL/TLS安全参数
      ssl_protocols TLSv1.2 TLSv1.3;  
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';  
      ssl_prefer_server_ciphers on;  
      ssl_session_cache shared:SSL:10m;  
      ssl_session_timeout 10m;  
      
  3. 访问控制与防攻击

    • IP访问限制
      location /admin {  
          allow 192.168.1.0/24;  
          deny all;  
      }  
      
    • 请求速率限制
      limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;  
      location /api/ {  
          limit_req zone=api_limit burst=20 nodelay;  
      }  
      
    • 防止常见Web攻击
      • 点击劫持:add_header X-Frame-Options "SAMEORIGIN";
      • XSS攻击:add_header X-XSS-Protection "1; mode=block";
      • 内容类型嗅探:add_header X-Content-Type-Options "nosniff";
  4. 文件与日志安全

    • 限制目录访问:禁止访问敏感目录(如配置文件、日志):
      location ~* ^/(\.git|\.ht|logs) {  
          deny all;  
      }  
      
    • 关闭目录列表autoindex off;
    • 设置文件权限:确保Nginx配置文件权限为640,目录权限为750
  5. 高级安全增强

    • 启用WAF(Web应用防火墙):安装ModSecurity模块(需手动编译Nginx)。
    • 监控与日志:配置logrotate定期轮转日志,分析异常请求。

参考来源

0
看了该问题的人还看了