2026年6月26日
2026年6月26日
WordPressのブルートフォース攻撃対策
はじめに
ブルートフォース攻撃は、Webサイト管理者のアカウント情報を不正に取得するために行われる一般的な攻撃手法です。WordPressを使用しているサイトでは特に注意が必要で、管理者パスワードを定期的に変更するだけでなく、より高度な対策も検討することが重要です。
症状・背景
このテーマが必要になる主な場面:
- ログインページへの大量のアクセスログが記録されている場合
- パスワードリセットメールが頻繁に送信される場合
- サイト管理者のアカウント情報が漏洩した疑いがある場合
手順・設定方法
ステップ1: ファイアウォールを使用してIPアドレスをブロックする
# 管理者のIPアドレス以外からのアクセスを制限します。
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 5/min --limit-burst 10 -j LOG --log-prefix "FW: HTTP"
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 5/min --limit-burst 10 -j REJECT
# 具体的な攻撃元のIPアドレスをブロックします。
sudo iptables -I INPUT -s 192.0.2.1 -p tcp --dport 80 -j DROP
ステップ2: ログインページのパスワード保護と変更
# htaccessファイルにパスワードを設定します。
echo "AuthUserFile /path/to/.htpasswd" > .htaccess
echo "AuthName 'Admin Login'" >> .htaccess
echo "AuthType Basic" >> .htaccess
echo "Require valid-user" >> .htaccess
# パスワードを作成します。
sudo htpasswd -c /path/to/.htpasswd username
ステップ3: WordPressプラグインを使用してログインフォームを保護する
# ブルートフォース攻撃対策のためのWordPressプラグインをインストールします。
sudo wp plugin install wp-login-protect --activate
# 既存のプラグイン設定を確認または調整します。
wp plugin list | grep wp-login-protect
ステップ4: 不正アクセスログの監視と分析
# アクセスログから不正なIPアドレスを特定し、リストに追加します。
tail -f /var/log/apache2/access.log | awk '$7 == "/wp-login.php" {print $1}' | sort | uniq -c | sort -nr > suspicious_ips.txt
# ブロック対象のIPアドレスをファイアウォールでブロックします。
while read ip; do iptables -I INPUT -s $ip -j DROP; done < suspicious_ips.txt
注意事項
- IPアドレスのブロックは、誤って正当なアクセスを遮断しないよう注意が必要です。
- パスワード保護やIPアドレスブロックなどの措置により、一部ユーザーの不本意な影響が出る可能性があります。そのような場合に備えて対策を講じましょう。
- 不正アクセスログを定期的にチェックし、必要に応じてセキュリティ設定を更新します。
- 定期的なWordPressとプラグインのアップデートを行い、最新かつ安全な状態を維持しましょう。
まとめ
1. ファイアウォール: IPアドレスベースでのアクセス制限は基本中の基本です。
2. パスワード保護: ログインページへの直接アクセスを防ぐための追加セキュリティ層が役立ちます。
3. プラグイン利用: WordPress用の専門的なセキュリティプラグインを使用することで、ブルートフォース攻撃に対する防御力を高めることができます。
4. ログ監視: ブロックリストを定期的に更新し、新たな脅威に対応します。
5. 継続的管理: セキュリティ設定は常に最新かつ適切な状態に保つことが重要です。
関連記事: