2026年7月7日
2026年7月7日
WordPressのiptablesで接続制限する方法
はじめに
WordPressサイトのセキュリティを強化するには、アクセス数や接続回数を制御することが有効です。本記事では、Linuxサーバー上でiptablesを使用してWordPressへの不正なアクセスを防ぐ方法について解説します。
症状・背景
このテーマが必要になる主な場面:
- DDoS攻撃やスパムアクセスからサイトを保護する必要がある場合
- WordPressの管理画面へのログイン試行回数を制限したい場合
- サーバー負荷を軽減し、正常なユーザーエクスペリエンスを保つため
手順・設定方法
ステップ1: iptablesのインストールと確認
# iptablesがインストールされているか確認します。
which iptables
# デフォルトのテーブルを表示して状態を確認します。
iptables -L -n --line-numbers
ステップ2: WordPressへの接続回数制限
# WordPress管理画面へのアクセスを10分間に3回までに制限するルールを作成します。
iptables -I INPUT 1 -p tcp --dport 80 -m state --state NEW -m recent --set
iptables -I INPUT 2 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 600 --hitcount 4 -j DROP
# HTTPS経由のアクセスも同様に制限します。
iptables -I INPUT 3 -p tcp --dport 443 -m state --state NEW -m recent --set
iptables -I INPUT 4 -p tcp --dport 443 -m state --state NEW -m recent --update --seconds 600 --hitcount 4 -j DROP
ステップ3: ログを生成して監視
# 不正なアクセス情報をログに書き出すルールを追加します。
iptables -I INPUT 5 -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 600 --hitcount 4 -j LOG --log-prefix "WordPress access denied: "
iptables -I INPUT 6 -p tcp --dport 443 -m state --state NEW -m recent --update --seconds 600 --hitcount 4 -j LOG --log-prefix "WordPress HTTPS access denied: "
# ログファイルを確認して不正アクセスのトレースを行います。
tail -f /var/log/messages
ステップ4: 設定の保存と実行
# iptablesの設定を永久に保存します(システム再起動後の有効化)。
iptables-save > /etc/iptables/rules.v4
注意事項
- <実践的な注意点1>: サーバーがリバースプロキシやCDNを通じてアクセスされる場合、その接続を考慮に入れて設定する必要があります。
- <実践的な注意点2>: 制限値はサイトの規模とアクセスパターンによって調整してください。
- <セキュリティ上の注意>: 不正なIPからのアクセスを完全にブロックしたい場合は、IPアドレスベースでの制限も併用することを検討します。
- <パフォーマンス/運用上の注意>: 接続制限は不必要な負荷を減らす効果がありますが、過度な設定は正常アクセスにも影響を与える可能性があるため注意が必要です。
まとめ
1. セキュリティ強化: iptablesを使用することで、WordPressサイトへのアクセスを厳格に管理できます。
2. パフォーマンス改善: 不必要な接続を遮断することでサーバーの負荷が軽減され、全体的なパフォーマンスが向上します。
3. ログ監視: 生成されたログから不審なアクセスを追跡し、適切に対応することが可能です。
4. 柔軟性: リバースプロキシやCDNとの連携も可能で、複雑な環境でも適応できます。
5. 調整可能性: 接続制限の値はサイトの特性に合わせて微調整が可能です。
関連記事: