CSF をインストールした後に Cyber​​Panel Server 500 エラーが発生した後、CSF ファイアウォールを再インストールして有効にする方法

サイバーパネルでCSFファイアウォールを再度有効にする方法

サイバーパネルサーバーがインストールされています すると500エラーが発生しました!

最近アップデートした場合は バージョン2.3.6のその後のコミットでは、CSF(ConfigServer Security and)ファイアウォールが無効になっています。この問題は、CyberPanel が Django v3 から v4 にアップグレードされたことに直接関連しています。このアップグレードでは、CSF と互換性のない重大な変更が導入されました。残念ながら、CSF はまだ Django 4 と互換性のあるコードに更新しておらず、多くのユーザーがファイアウォールを利用できない状態になっています。

CyberPanel-1でCSFファイアウォールを再度有効にする方法

質問

Cyber​​Panelは最新のWeb開発標準に対応するため、Django v3からv4にアップグレードしましたが、CSFとの大きな矛盾が生じました。根本的な問題は、多くのユーザーがファイアウォール管理にCSFを利用していたにもかかわらず、CSFがまだDjango 4に対応していなかったことです。この矛盾が大きな摩擦を引き起こしました。CyberPanel 2.3.6 以降のバージョンでは CSF が無効になるため、サーバーが脆弱になる可能性があります。

CyberPanel 2.3.9にCSFをインストールした後、500内部サーバーエラーが発生し、コントロールパネルにアクセスできなくなりました。500エラーは通常、サーバー側での設定の問題、依存関係の競合、またはコード実行エラーを示しています。コミュニティの議論や関連資料に基づくと、これはCSFと最新バージョンのCyberPanelとの互換性の問題である可能性があり、特にDjangoのバージョン(v3からv4)のアップグレードが原因と考えられます。

互換性のないDjangoバージョン

CyberPanelはDjango 2.3.6以降、Djangoをv4にアップグレードしましたが、現在のCSFバージョンはまだDjango v4に完全には対応していません。そのため、CSFのPythonモジュール(ConfigServer/URLGet.pmやDisplayUI.pmなど)はCyberPanel環境で実行できません。
コミュニティのフィードバックによると、CSF は CyberPanel 2.3.6 以上では無効になっているか、インストール後に 500 エラーが発生します。

現在の環境を確認する

サイバーパネルのバージョンを確認する

/usr/local/CyberCP/version.txt を cat する

Djangoのバージョンを確認する

python3 -c "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エラーが発生した場合は、公式アップグレードスクリプトを使用してアップグレードとインストールを行うだけで済みます。

シュ <(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/サイバーCP現在の 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
シュ <(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がインストールされると、警告が表示されます。

*警告* /etc/csf/csf.conf 内の [SENDMAIL] [/usr/sbin/sendmail] のバイナリの場所が正しくないか、インストールされていないか、実行可能ではありません。
*警告* バイナリの場所が欠落しているか間違っていると、csf と lfd の機能が壊れます。

この警告は、CSFが設定ファイル/etc/csf/csf.confで指定されたSENDMAILバイナリパス/usr/sbin/sendmailが見つからない、インストールされていない、または実行可能ではないことを検出したことを意味します。これはCSFとLFDの正常な動作に影響します。

sudo apt install sendmail

CSFおよびLFDサービスを再起動する
すべてが正常に動作していることを確認した後、CSF および LFD サービスを再起動します。

sudo systemctl csfを再起動します
sudo systemctl lfdを再起動します

この手動ロールバックは一時的な修正に過ぎませんが、ファイアウォール管理にCSFを利用しているユーザーにとっては不可欠です。CSFがDjango 4に対応するようにコードを更新するまで、この回避策によってサーバーのセキュリティを維持できます。将来的に、より永続的な解決策が提供される予定ですので、CSFとCyberPanelのアップデートにご注目ください。

2.3/5 - (3票)

手紙への返信

メールアドレスが変更されることはありません。 支払い欄に必須の項目は必須です