2026年6月20日
2026年6月20日
WordPressのWAF(ModSecurity)をNginxに設定する
はじめに
Webアプリケーションファイアウォール(WAF)は、Webサイトに対する攻撃から保護する重要なセキュリティツールです。ModSecurityはオープンソースのWAFであり、Nginxとの組み合わせで高いセキュリティを提供します。WordPressサイトを持つ管理者にとって、この組み合わせは強力な防御策となります。
症状・背景
- WordPressサイトへのDDoS攻撃
- SQLインジェクションやクロスサイトスクリプティング(XSS)などの攻撃からの保護が必要
- ス팸コメントや不正アクセスの防止
- サイトのパフォーマンスを維持しつつ、セキュリティレベルを向上させたい
手順・設定方法
ステップ1: ModSecurityとNginxのインストール
# ModSecurityの最新安定版をダウンロード
wget https://github.com/SpiderLabs/ModSecurity/releases/download/v3.0.4/modsecurity-apache_3.0.4-1.tar.gz
# パッケージ展開とモジュールインストール
tar xzf modsecurity-apache_3.0.4-1.tar.gz && cd modsecurity-apache_3.0.4-1
./configure --enable-headers-module --enable-downgrade-to-baseline --enable-geoip=module --with-apxs=/usr/local/apache/bin/apxs
# Nginxのインストール(CentOSの場合)
sudo yum install epel-release -y
sudo yum install nginx mod_security apr-util-openssl -y
# ModSecurityのNginxモジュールをインストール
git clone https://github.com/SpiderLabs/ModSecurity-nginx.git /opt/modsecurity/nginx
cd /opt/modsecurity/nginx && git submodule update --init
make
sudo make install
ステップ2: NginxとModSecurityの設定
# ModSecurityルールをダウンロード
git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git /etc/modsecurity/crs
# Nginxの設定ファイルにModSecurityを追加
echo 'load_module modules/ngx_http_modsecurity_module.so;' | sudo tee -a /etc/nginx/nginx.conf
ステップ3: ModSecurityとNginxの統合
# 開始セクションを作成
sudo mkdir -p /etc/modsecurity-enabled && cd $_
sudo wget https://raw.githubusercontent.com/SpiderLabs/owasp-modsecurity-crs/master/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example -O REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf
# ModSecurityルールをNginxに適用
sudo sed -i 's/#SecRuleEngine\s*DetectionOnly/SecRuleEngine On/g' /etc/modsecurity/crs/rules/*.conf
# Nginxの設定ファイルにModSecurityルールを追加
echo "modsecurity on;" | sudo tee -a /etc/nginx/sites-available/default
echo "modsecurity_rules_file /etc/modsecurity/crs/rules/*.conf;" | sudo tee -a /etc/nginx/sites-available/default
ステップ4: ModSecurityとNginxのテスト
# Nginxを再起動して設定を適用
sudo systemctl restart nginx
注意事項
- ルールファイルが最新であることを確認してください。
- ModSecurityが正常に動作しているかどうかは、ログを監視することで確認できます。
- セキュリティの向上には性能への影響があります。適切なパフォーマンスチューニングが必要です。
- 大規模サイトの場合、ModSecurityのルールを細かくカスタマイズして無効化する部分があるかもしれません。
まとめ
1. インストール: ModSecurityとNginxをインストールし、それぞれを正しく設定します。
2. セキュリティルール: OWASP ModSecurity Core Rule Setを使用して基本的なセキュリティルールを適用します。
3. 統合: NginxとModSecurityを統合し、既存のWebサイトで使用できるようにします。
4. テスト: 環境に合わせた設定を行い、NginxとModSecurityが正常に機能するか確認します。
5. 監視: 機密性とパフォーマンスを維持するために、セキュリティ対策の効果を定期的にチェックします。
関連記事: