2026年7月16日
2026年7月16日
WordPressのファイル変更監視(inotify)を設定する
はじめに
WordPressサイトのセキュリティを強化し、悪意のあるアクセスや誤った変更から重要なファイルを保護するためには、ファイル変更をリアルタイムで検出・通知できるシステムが必要です。inotifyはLinuxカーネルが提供するファイル監視ツールであり、特にWordPressサイトの管理者にとって有用な機能を提供します。
症状・背景
- WordPressサイトの重要な設定ファイル(wp-config.phpなど)が変更された
- ファイルシステム内で予期しない大量の書き込み操作があった
- セキュリティイベントログに不審なアクセス記録が見つかった
- 常時SSL(HTTPS)対応サイトで、証明書ファイルや設定ファイルを誤って変更した
手順・設定方法
ステップ1: inotifyコマンドのインストールと初期化
# インストールがまだであればinotify-toolsパッケージをインストールします。
sudo apt-get install inotify-tools
# WordPressサイトのルートディレクトリに移動します。
cd /var/www/html/wordpress-site
ステップ2: 監視対象ファイルやディレクトリを指定する
# wp-config.phpファイルが変更された場合、メールで通知します。
inotifywait -m -r -e modify --format '%w%f was modified' /var/www/html/wordpress-site/wp-config.php | mail -s "WordPress config file changed" your-email@example.com
# pluginsディレクトリの新規作成や削除イベントを監視します。
inotifywait -mr -e create,delete /var/www/html/wordpress-theme/plugins
ステップ3: システムサービスとして起動するように設定
# inotifywaitコマンドを含むスクリプトを作成し、該当のディレクトリに保存します。
nano /etc/init.d/file-monitor.sh
# 次に、作成したスクリプトが実行可能であることを確認します。
chmod +x /etc/init.d/file-monitor.sh
ステップ4: inotifyの効果を確認・トラブルシュートする
# ディレクトリやファイルへのアクセスが許可されているか確認します。
ls -ld /var/www/html/wordpress-site/wp-config.php
# また、inotifywaitコマンドが期待通りに動作しているかテストしてみましょう。
touch /var/www/html/wordpress-theme/plugins/test-file
注意事項
- イベントの通知は大量に発生する可能性があります。適切なフィルタリングやスケジューリングが必要です。
- ファイル変更を監視するディレクトリやファイルは厳選し、必要最小限に抑えることが重要です。
- セキュリティ上の注意: 監視対象が悪意のあるユーザーによって操作された場合の影響を考慮しましょう。
- パフォーマンス/運用上の注意: inotifywaitコマンドによる負荷は軽微ですが、大量のイベントでパフォーマンスに影響を与える可能性があります。
まとめ
1. inotifyのインストール: サイトが稼働するサーバー上でinotify-toolsをインストールします。
2. 監視対象の設定: WordPressサイト内で変更を検知したいファイルやディレクトリを指定します。
3. イベント通知の設定: ファイル変更時のメール通知等、具体的なアクションを設定します。
4. トラブルシューティング: 監視が正常に動作しているか確認し、問題があれば修正します。
5. 定期的なレビュー: セキュリティポリシーや監視ルールを定期的に見直すことが推奨されます。
関連記事: