優れたソフトウェアと実用的なチュートリアル
サイバーパネルでCSFファイアウォールを再度有効にする方法
サイバーパネルサーバーがインストールされています 脳脊髄液 すると500エラーが発生しました!
最近アップデートした場合は サイバーパネル バージョン2.3.6のその後のコミットでは、CSF(ConfigServer Security andファイアウォール)ファイアウォールが無効になっています。この問題は、CyberPanel が Django v3 から v4 にアップグレードされたことに直接関連しています。このアップグレードでは、CSF と互換性のない重大な変更が導入されました。残念ながら、CSF はまだ Django 4 と互換性のあるコードに更新しておらず、多くのユーザーがファイアウォールを利用できない状態になっています。
質問
CyberPanelは最新の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間の競合が原因です。500エラー。
sh /etc/csf/uninstall.sh
ロールバックスクリプトを使用して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のバージョンに手動でロールバックする方法があります。このプロセスを簡素化するために、自動的にロールバックするスクリプトを作成しました。
スクリプトが行うこと
- CyberPanelとCSFの設定のバックアップ:
- スクリプトはまずディレクトリのバックアップを作成します
/usr/local/サイバーCP
現在の CyberPanel 設定が安全に保存されるようにするためです。 - CSF設定ファイルもバックアップします
/etc/csf
(存在する場合)。CSF を削除して再インストールする必要があるため、この手順により、すべてのカスタム ファイアウォール設定が保持されます。
- スクリプトはまずディレクトリのバックアップを作成します
- 互換性のあるCyberPanelバージョンをダウンロードする:
- このスクリプトは、CSF互換バージョンのCyberPanelをダウンロードします。このバージョンでは、CSFと完全に互換性のあるDjango v3が使用されています。
- settings.py に保存されている資格情報をバックアップおよび復元します
- 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のアップデートにご注目ください。