溫馨提示×

LNMP環境下Ubuntu如何設置防火墻

小樊
39
2025-10-07 18:35:33
欄目: 智能運維

LNMP環境下Ubuntu防火墻(UFW)配置步驟

1. 安裝與啟用UFW

UFW(Uncomplicated Firewall)是Ubuntu默認的防火墻管理工具,基于iptables構建,操作簡單。首先更新軟件包列表并安裝UFW:

sudo apt update
sudo apt install ufw

安裝完成后,啟用UFW(啟用后會攔截所有未明確允許的入站流量):

sudo ufw enable

系統會提示“Command may disrupt existing ssh sessions”,輸入y確認啟用。

2. 設置默認規則

為遵循“最小權限原則”,建議設置默認規則:拒絕所有入站流量、允許所有出站流量(服務器自身發起的請求不受限制):

sudo ufw default deny incoming
sudo ufw default allow outgoing

這一步是防火墻安全的基礎,能有效減少未授權訪問的風險。

3. 允許必要服務端口

LNMP環境(Linux+Nginx+MySQL+PHP)需要開放以下端口,確保服務正常運行:

  • Nginx:HTTP(80端口,用于網頁訪問)、HTTPS(443端口,用于加密網頁訪問):
    sudo ufw allow 80/tcp    # HTTP
    sudo ufw allow 443/tcp   # HTTPS
    
  • MySQL/MariaDB:數據庫服務端口(3306,默認用于本地或遠程數據庫連接):
    sudo ufw allow 3306/tcp  # MySQL
    
  • PHP-FPM:若使用PHP-FPM處理PHP請求,默認監聽9000端口(需與Nginx配置中的fastcgi_pass一致):
    sudo ufw allow 9000/tcp  # PHP-FPM
    
  • SSH:遠程管理服務器的必要端口(默認22端口),建議限制訪問IP(僅允許自己的IP訪問),提升安全性:
    sudo ufw allow from <你的IP地址> to any port 22  # 替換<你的IP地址>為實際IP
    
    若暫時不確定IP,可先允許所有IP訪問(后續再修改):
    sudo ufw allow 22/tcp  # SSH(臨時)
    

4. 防止SSH暴力破解(可選但推薦)

SSH端口(22)是黑客攻擊的高頻目標,可通過limit命令限制連接速率(如每分鐘最多6次嘗試),觸發閾值后自動拒絕后續連接:

sudo ufw limit 22/tcp

此功能能有效降低暴力破解風險,即使密碼泄露也能延緩攻擊進度。

5. 查看與管理規則

  • 查看當前規則:確認規則是否正確應用,verbose參數可顯示詳細信息(如端口對應的協議):
    sudo ufw status verbose
    
    輸出示例:
    Status: active
    Logging: on (low)
    Default: deny (incoming), allow (outgoing), deny (routed)
    New profiles: skip
    To                         Action      From
    --                         ------      ----
    22/tcp                     ALLOW       Anywhere                   # SSH
    80/tcp                     ALLOW       Anywhere                   # HTTP
    443/tcp                    ALLOW       Anywhere                   # HTTPS
    3306/tcp                   ALLOW       Anywhere                   # MySQL
    9000/tcp                   ALLOW       Anywhere                   # PHP-FPM
    22/tcp (v6)                ALLOW       Anywhere (v6)              # SSH
    
  • 刪除規則:若需修改規則(如取消某端口的開放),可先列出帶編號的規則,再通過編號刪除:
    sudo ufw status numbered  # 列出規則及編號
    sudo ufw delete 3         # 刪除編號為3的規則(如3306/tcp)
    

6. 測試與驗證

  • 測試服務訪問:在瀏覽器中訪問服務器IP的80端口(如http://<服務器IP>),應能正常顯示Nginx歡迎頁面;訪問443端口(如https://<服務器IP>),應能跳轉至HTTPS頁面。
  • 測試SSH連接:從允許的IP地址嘗試SSH登錄(如ssh username@<服務器IP>),應能正常連接;若限制了IP,其他IP應無法連接。
  • 檢查UFW狀態:確保UFW處于active狀態(sudo ufw status顯示“Status: active”),否則規則不會生效。

注意事項

  • 避免鎖定自己:配置UFW前,務必確保SSH端口(22)已允許訪問,否則可能導致無法遠程登錄服務器。
  • 僅開放必要端口:不要開放未使用的端口(如FTP的21端口、Redis的6379端口),減少攻擊面。
  • 定期檢查規則:每月至少檢查一次UFW規則,及時刪除不再需要的端口(如測試后關閉的臨時端口)。
  • 結合其他安全措施:UFW只是基礎防護,建議配合SSH密鑰認證、Fail2Ban(防暴力破解)、定期系統更新等措施,提升服務器安全性。

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