溫馨提示×

Ubuntu中Nginx安全設置怎么做

小樊
44
2025-08-26 07:34:00
欄目: 智能運維

以下是在Ubuntu中配置Nginx安全設置的關鍵步驟,涵蓋系統基礎加固、Nginx配置及安全防護:

一、系統基礎安全加固

  1. 更新系統補丁
    sudo apt update && sudo apt upgrade -y  # 更新系統和軟件包
    sudo apt install unattended-upgrades    # 啟用自動安全更新
    
  2. 最小化安裝與權限控制
    • 移除不必要的軟件包:sudo apt autoremove --purge
    • 禁用root SSH登錄:修改/etc/ssh/sshd_configPermitRootLogin no,并使用SSH密鑰認證。

二、Nginx核心安全配置

  1. 隱藏版本信息與禁用危險模塊
    /etc/nginx/nginx.confhttp塊中添加:
    server_tokens off;  # 隱藏Nginx版本號
    # 禁用不需要的模塊(如HTTP自動索引)
    # 需重新編譯Nginx時配置(非默認模塊無需操作)
    
  2. 限制HTTP方法與訪問控制
    # 僅允許GET/POST/HEAD方法
    if ($request_method !~ ^(GET|HEAD|POST)$) {
        return 405;
    }
    # IP白名單示例(拒絕其他IP)
    location /admin {
        allow 192.168.1.0/24;
        deny all;
    }
    
  3. SSL/TLS安全配置
    • 啟用HTTPS并限制協議與加密套件:
      listen 443 ssl http2;
      ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
      ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
      ssl_protocols TLSv1.2 TLSv1.3;
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
      ssl_prefer_server_ciphers on;
      # 啟用HSTS(強制HTTPS)
      add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
      
    • 使用Let’s Encrypt免費證書:
      sudo apt install certbot python3-certbot-nginx
      sudo certbot --nginx -d yourdomain.com
      
  4. 安全頭部與防攻擊策略
    # 防止點擊劫持、XSS等
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";
    add_header Content-Security-Policy "default-src 'self'";
    
  5. 速率限制與資源控制
    # 限制單個IP請求速率(如100次/分鐘)
    limit_req_zone $binary_remote_addr zone=api_limit:10m rate=100r/m;
    location /api/ {
        limit_req zone=api_limit burst=20 nodelay;
    }
    # 限制上傳文件大小
    client_max_body_size 10M;
    

三、安全增強措施

  1. Web應用防火墻(WAF)
    安裝ModSecurity模塊(需手動編譯Nginx):
    sudo apt install libmodsecurity3 libmodsecurity-dev
    # 下載Nginx連接器并配置規則(參考ModSecurity官方文檔)
    
  2. 日志與監控
    • 配置訪問日志與錯誤日志:
      access_log /var/log/nginx/access.log combined;
      error_log /var/log/nginx/error.log warn;
      
    • 安裝Fail2Ban防止暴力破解:
      sudo apt install fail2ban
      sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
      sudo service fail2ban restart
      

四、配置文件權限管理

# 限制配置文件訪問權限
sudo chmod 600 /etc/nginx/nginx.conf /etc/nginx/conf.d/*.conf
sudo chown root:root /etc/nginx/ -R

完成配置后,重啟Nginx生效:

sudo nginx -t  # 測試配置語法
sudo systemctl restart nginx

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女