安裝CSF 遇到CyberPanel 伺服器500 錯誤後,如何重新安裝啟用CSF 防火牆

CyberPanel如何重新啟用CSF 防火牆

CyberPanel 伺服器正在安裝 後出現500 錯誤!

如果您最近更新到 版本2.3.6 的後續提交版本,您可能已經注意到CSF(ConfigServer 安全和)防火牆已停用。此問題與CyberPanel 從Django v3 升級到v4 直接相關,這引入了目前與CSF 不相容的重大變更。不幸的是,CSF 尚未更新其程式碼以與Django 4 相容,導致許多用戶沒有可用的防火牆。

如何在CyberPanel 上重新啟用CSF 防火牆-1

問題

CyberPanel 從Django v3 升級到v4 是為了跟上最新的Web 開發標準,但這與CSF 產生了重大衝突。核心問題是,許多用戶依賴CSF 進行防火牆管理,但CSF 尚未更新以支援Django 4。這種不導致CyberPanel 2.3.6 及更高版本禁用了CSF,從而使您的伺服器可能存在漏洞。

使用者在CyberPanel 2.3.9 版本上安裝CSF 後,遇到500 內部伺服器錯誤,導致控制面板無法存取。 500 錯誤通常表示伺服器端存在設定問題、依賴衝突或程式碼執行失敗。結合社群討論和相關資料,這可能是CSF 與CyberPanel 最新版本的兼容性問題,尤其是Django 版本升級(從v3 到v4)引發的。

Django 版本不相容

CyberPanel 從2.3.6 開始將Django 升級到v4,而CSF 的當前版本尚未完全適配Django v4。這會導致CSF 的Python 模組(如ConfigServer/URLGet.pm 或DisplayUI.pm)在CyberPanel 環境中執行失敗。
社群回饋表明,CSF 在CyberPanel 2.3.6 以上版本中被停用,或安裝後觸發500 錯誤。

檢查當前環境

確認CyberPanel 版本

cat /usr/local/CyberCP/version.txt

確認Django 版本

python3 -c "import django; print(django.get_version())"

若顯示4.xx,則可能與CSF 不相容。

卸載現有CSF

CyberPanel 伺服器報錯500,先卸載CSF,然後查看CyberPanel 還會不會報錯,如果卸載後面板存取正常,那就是CSF和CyberPanel 面板衝突造成的

sh /etc/csf/uninstall.sh

使用回滾腳本重新安裝CSF

若CSF 必需,上述步驟無效,可回溯至2.3.5(支援Django v3 和CSF):
cd /usr/src wget https://sajetekengineering.com/wp-content/uploads/cyberpanel/cyberpanel_csf_rollback.sh chmod +x cyberpanel_csf_rollback.sh ./cyberpanel_csf_rollback.sh

該腳本會備份現有配置並降級到相容版本。

重新安裝CSF

wget https://github.com/waytotheweb/scripts/raw/refs/heads/main/csf.tgz tar -xzf csf.tgz cd csf sh install.sh

官方解決方案

官方升級了安裝腳本,如果在安裝csf後遇到500錯誤,只需要使用官方的升級腳本進行升級安裝。

sh <(curl https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh || wget -O - https://raw.githubusercontent.com/usmannasir/cyberpanel/stable/preUpgrade.sh)

 

臨時解決方案:手動回滾

回滾CyberPanel 到相容版本,對於那些需要恢復CSF 功能的用戶,一個臨時解決方案是手動回滾到仍然與CSF 相容的CyberPanel 版本。為了簡化此過程,我建立了一個自動回滾的腳本。

腳本的作用

  1. 備份CyberPanel 和CSF 配置
    • 該腳本首先創建您的目錄的備份/usr/local/CyberCP,以確保您目前的CyberPanel 設定安全儲存。
    • 它還會備份您的CSF 配置文件/etc/csf(如果存在)。由於我們需要刪除並重新安裝CSF,此步驟可確保您的所有自訂防火牆設定都已保留。
  2. 下載相容的CyberPanel 版本
    • 腳本會下載與CSF 相容的CyberPanel 版本。此版本仍使用與CSF 完全相容的Django v3。
    • 備份和還原儲存在settings.py 中的憑證
  3. 降級Django 並重新安裝CSF
    • 該腳本透過Cyberpanel 卸載並重新安裝CSF,從而修復UI。
    • 最後,腳本將Django 從v4 降級到v3,使其與下載的CyberPanel 版本保持一致,並確保CSF 能夠正常運作。

如何使用腳本

若要使用此回溯腳本,請依照下列步驟操作:

pip install -r /usr/local/CyberCP/requirments.txt --force-reinstall
sh <(curl https://sajetekengineering.com/wp-content/uploads/cyberpanel/install_csf_cyberpanel.sh || wget -O - https://sajetekengineering.com/wp-content/uploads/cyberpanel/install_csf_cyberpanel.sh)

運行上面的腳本後,重新啟動伺服器後,CSF安裝成功!

CSF安裝後啟動會遇到警告

*WARNING* Binary location for [SENDMAIL] [/usr/sbin/sendmail] in /etc/csf/csf.conf is either incorrect, is not installed or is not executable
*WARNING* Missing or incorrect binary locations will break csf and lfd functionality

這個警告說明CSF 偵測到設定檔/etc/csf/csf.conf 中指定的SENDMAIL 二進位路徑/usr/sbin/sendmail 無法找到、未安裝或無法執行。這會影響CSF 和LFD 的正常功能。

sudo apt install sendmail

重啟CSF 和LFD 服務
確保一切正常後,重新啟動CSF 和LFD 服務:

sudo systemctl restart csf
sudo systemctl restart lfd

此手動回滾只是臨時修復,但對於依賴CSF 進行防火牆管理的用戶來說,它是必不可少的。在CSF 更新其程式碼以與Django 4 相容之前,此解決方法將允許您維護伺服器的安全性。請密切注意CSF 和CyberPanel 的更新,以便將來找到更持久的解決方案。

2.3/5 - (3 votes)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *