WordPress サイトを運営してみると、望ましくないトラフィックのために頭痛を患うことが多いです。悪意のあるボットの多くはサーバーファイアウォールからフィルタリングされていますが、それを突き抜けてページをランダムに掻くボットも少なくありません。このようなボットが短時間で繰り返し接続すると、サーバーリソースが不要に消費され、サイトの応答速度が遅くなったり、ひどい場合にCPU使用量が急増してサイトがダウンすることもあります。
このようなときは、過度に接続するIPを把握し、サーバーファイアウォールやWordfenceなどのセキュリティプラグインから直接ブロックすることが効果的な対応方法になることがあります。この記事では WordPress 人気のセキュリティプラグインであるWordfenceを使用してIPをブロックする方法を見てみましょう。

悪意のあるボットをブロックする方法
私は、この WordPress ブログを10年以上運営してきて、悪性ボットの無差別的な接続はもちろん、実際のディドス(DDoS)攻撃でサーバーがダウンしたり、極端に遅くなる状況を何度も経験しました。攻撃が発生するたびにウェブホスティング会社に問い合わせてアドバイスを求め、それに応じて対応してきました。そしてその過程でそれなりに効果を見た方法を見つけることができました。
特に、昨年8月から9月まで、1ヶ月ほどは激しいディドス攻撃に苦しんでいました。初めて攻撃を受けた時はあまりにも慌てて正しく手を書けませんでしたが、攻撃が繰り返され次第に対応コツが生じ始めました。
また、悪意のあるボットが突然急増し、サーバーが非常に遅くなったりダウンしたりする現象を経験したりしました。この場合、クラウドフレア(Cloudflare)と連動して、実際のユーザーが通過し、ボットだけをブロックする方法が効果的かもしれません。
ディドス攻撃を受けて以来、私はCloudflareと連動して使用していましたが、クラウドフラワーのためサイトのレイアウトが壊れる現象が発生し、クラウドフレアとの連動を解除しました。代わりに、Wordfenceプラグインの速度制限(Rate Limiting)設定で防御していますが、効果的なようです。
4段階ファイアウォールブロック方式
過度に接続するIPをブロックする方法としていくつかあります。トラフィック削減の面では、クラウフレアを活用することが効果的です。サーバーに到達する前に処理するので、サーバーリソースを節約できます。
Cloudflare(一次防御線 - ネットワークエッジ)
- 特徴: サーバーのチラシでトラフィックを処理するため、サーバーの帯域幅とリソースをまったく消費しません。
- 活用: 海外足 DDoS(分散サービス拒否攻撃)、特定の国のブロック、未知の大規模な自動化ボットのブロックに最適です。
サーバーファイアウォール(例:Cloudwaysファイアウォール)(2次防御線 - サーバーOSレベル)
- 特徴: クラウドウェイズ管理パネル(Security » Firewall)で設定し、サーバーファイアウォールはすぐにパケットをブロックします。
- 活用: Cloudflareを経由せずにサーバーIPに直接入ってくる悪意のあるIPや、継続的にサーバーを悩ませる特定のIPを源泉封鎖する場合に適しています。

.htaccess(3次防御線 - Webサーバーレベル)
- 特徴: Apache / LiteSpeed Webサーバーは要求を受け取りますが、PHPやデータベースを呼び出さずにこするロールだけを実行した後、すぐに拒否します。
- 活用: 特定のファイルアクセス制限、ユーザーエージェント(User-Agent)ベースのブロック、個々のIPピンポンのブロックに役立ちます。 (ただし、ルールが長すぎるとWebサーバーのパフォーマンスにわずかな影響を与える可能性があります)
Wordfence(4次防御線 - アプリケーションレベル)
- 特徴: WordPress PHPコードが動作してからスキャンするので、最も重いですが、 WordPressの構造(ログイン、コメント、データベースクエリ)を正確に理解してブロックします。
- 活用: 管理者ページ 無差別代入攻撃(Brute Force)、悪意のあるコメント/スパム、 WordPress 脆弱性攻撃の検出に不可欠です。
サーバーファイアウォールで正しくブロックされていない場合、または.htaccessファイルを介してブロックされない場合は、ワードフェンスファイアウォールでブロックするとブロックされる可能性があります。
<4段階ファイアウォール遮断方式 比較>
| 比較項目 | Cloudflare(エッジ) | Cloudwaysファイアウォール(サーバーOS) | .htaccess(ウェブサーバー) | Wordfence(WordPress) |
| ブロック位置 | サーバー外部 (ネットワークエッジ) | サーバー入口 (OS/OSファイアウォール) | Webサーバー (Apacheプロセス) | WordPress 내부 (PHP/DB) |
| サーバー負荷 | なし(0%) サーバーが接続自体を知らない | ごく少ない OSパケットレベル拒否 | 少ない PHP未実行、テキスト拒否 | 高い(注意) PHPの実行とメモリ消費 |
| トラフィックを節約 | 最高 サーバートラフィックの控除なし | 優れ Webサーバーリソースの消費を防ぐ | 主 ネットワーク接続要求は受け入れられます | 悪い すでにサーバー内部エントリーを完了 |
| PHP/DBの実行 | 未実行 | 未実行 | 未実行 | 実行済み |
| 設定の利便性 | ダッシュボードUI (非常に簡単) | Cloudways パネル (簡単) | .htaccess コードの修正 (注意が必要) | WordPress プラグイン (非常に簡単) |
| 推奨用途 | DDoS防衛、国家ブロック、大規模な悪性ボット | 悪性IP源遮断、連続スクレーパー防御 | 特定のURLアクセス制御、シンプルリダイレクト/ブロック | ブルトフォースサイン防御、インテリジェントハッキング検出 |
WordfenceでIPをブロックする
このブログに特定のIPアドレスに繰り返しスパムコメントが付いているので、悩み、WordfenceがIPアドレスをブロックするように設定しました。クラウドウェイズファイアウォールでIPブロック要求を行うことができますが、今後簡単にブロックを解除するためにWordfenceを選択しました。

特定のIPブロック設定を行うには Wordfence » ファイアウォールに移動し、 ブロックをクリックします。

ブロック ページが表示されたら ブロックタイプの IPアドレスをクリックして、 ブロック先のIPアドレス와 ブロック理由を入力して このIPアドレスをブロック ボタンをクリックします。

これはブロックリストに追加されます。
ブロックリストから適切なIPエントリを選択し、 ブロック解除 ボタンを押してブロックを停止できます。

コメントを残す