はじめに
リスク分析機能「KUSANAGI Analyze」は、KUSANAGI環境をスキャンして、ディスク容量の圧迫状況や設定ファイルの不備、攻撃対象となりうるファイルの存在などを検知し、具体的な改善アドバイスを提示してくれます。これにより、ユーザーは潜在的な障害やセキュリティリスクを事前に把握し、早期に対処できるようになります。
本記事では、上記問題の兆候を“見える化”するKUSANAGI Analyze を使って、WordPressのボトルネックを診断する方法や、実際のレポートの読み方をkyorolabの視点でわかりやすく紹介します。
KUSANAGI Analyzeとは?
KUSANAGI Analyze は、WordPressサイトとそのサーバー環境を診断し、以下のような情報をレポートとして可視化してくれるツールです。
- ディスク容量圧迫
- 設定ファイル不備
- 攻撃対象になりうるファイルなどを検知して改善のアドバイスを表示
しかも、コマンド一発で使えるという、まさにKUSANAGIユーザー必携の診断ツールです。
注意:KUSANAGI 9 Business/Premium Editionのみ提供。(Free Editionは非搭載)
インストールと使い方
kusanagi analyze
KUSANAGIサーバーにSSHでログイン後、 rootユーザーもしくはkunsagiユーザーで上記コマンドを実行します。
KUSANAGI Analyzeコマンドを実行すると分析結果を画面上に出力せることができます。
出力をアーカイブにするときは以下のオプションをつけます。
オプション:出力結果をアーカイブする。
[--output-archive 出力アーカイブのフルパス]
以下は、実際に表示されるレポートの例です。
[プロファイル名: example-profile]
(レベル: alert)
ドキュメントルート内にセキュリティ上問題となるファイル(.zip, .tar, .gz, .log, .sql, .dump, .php.xxx)が確認されました。
削除するか、ドキュメントルート外に移動してください。
対象ファイル:
- /home/kusanagi/example-profile/DocumentRoot/wp-content/plugins/siteguard/error.log
- /home/kusanagi/example-profile/DocumentRoot/wp-content/plugins/updraftplus/vendor/symfony/polyfill-mbstring/Resources/mb_convert_variables.php8
uploadsディレクトリのパーミッションが適切ではありません。
ファイルオーナーは `kusanagi.www`、パーミッションは `0775` に修正してください。
(レベル: notice)
wp-config.php に自動更新設定 `FS_METHOD`, `FTP_HOST`, `FTP_USER`, `FTP_PASS` のいずれかが見つかりませんでした。
次のように設定することが推奨されます:
- FTP_METHOD: `ftpext`
- FTP_HOST: `localhost`
- FTP_USER: `kusanagi`
- FTP_PASS: (kusanagi init 時に --passwd に指定した値)
未設定項目:
- FTP_PASS
analyze completed.
レポートの見方と対処法
🚨 セキュリティレベル:alert
✅ 不要ファイルの検出
ドキュメントルート内に .log
や .php8
のような、攻撃対象となりうるファイルが残っているという警告です。
error.log
はログファイル。不要であれば削除。mb_convert_variables.php8
は不正な拡張子(.php8
)のファイルで、誤検出か悪意ある残留物の可能性があります。
【対処法】
ファイルを削除、または /home/kusanagi/プロファイル名/
より上の階層などドキュメントルート外へ退避。
✅ uploadsディレクトリのパーミッション
【推奨】
- 所有者:
kusanagi.www
- パーミッション:
0775
【対処法(例)】
sudo chown -R kusanagi:www /home/kusanagi/example-profile/DocumentRoot/wp-content/uploads
sudo chmod -R 0775 /home/kusanagi/example-profile/DocumentRoot/wp-content/uploads
ℹ️ セキュリティレベル:notice
■ FTP設定が未定義
これは wp-config.php
に FTP 経由の自動更新設定が未記述なため表示される通知です。ただし、KUSANAGI 環境では SFTP や git デプロイが主流のため、多くの場合は実害なしです。
必要に応じて次のように記述できます:
define('FS_METHOD', 'ftpext');
define('FTP_HOST', 'localhost');
define('FTP_USER', 'kusanagi');
define('FTP_PASS', '(初期化時に指定したパスワード)');
まとめ
kusanagi analyze
を使うことで、普段気づきにくいセキュリティ上のリスクや設定の抜けを手軽にチェックできます。
今回のように不要なファイルの放置やパーミッションの不備は、攻撃の入り口になることもあるので、診断結果をもとに即座に対処するのが安心です。