クラウドウェイズサーバーの負荷を軽減する:悪意のあるボットと特定のIP遮断方法の3つ

サイトを運営していると、実際の訪問者数に比べてサーバーリソース(CPU、RAM)の使用量が過度に高くなることがよくあります。サーバーアクセスログを分析してみると、主な検索エンジンクローラではなく、商用データ収集ボットや特定の国のスパム性IPが無分別に接続することが多いです。これにより帯域幅が浪費され、サイトが遅くなり、サーバーの安定性に悪影響を及ぼす可能性があります。まれに、ディドス(DDoS)攻撃のように悪意のある接続が行われることもあります。

この投稿では、クラウドウェイで WordPress サイトを運営する際にボットやスパム性IPのために過度にトラフィックが発生する場合、過度に頻繁に接続するボットとIPを確認してブロックする方法について詳しく見てみましょう。

💡 クラウドウェイズ加入方法(+ 60%割引クーポン)

クラウドウェイズサーバーの負荷を軽減する:悪意のあるボットと特定のIPブロック方法

クラウドウェイズサーバーの負荷を軽減する:悪意のあるボットと特定のIPブロック方法

サーバーレベル/アプリケーションレベルで悪意のあるIPを識別するソースをブロックする

クラウドウェイズは、サーバー全体で検出された「疑わしいアクティビティ」をリアルタイムで監視および記録するセキュリティログ機能を提供します。

  • 疑わしい活動の検出:単純な接続ではなく、セキュリティ上の脅威と見なされる異常なアプローチの試みを捉えます。
  • リアルタイムアップデート:リストは60秒(1分)ごとに更新されるため、現在進行中の攻撃や異常なトラフィックを即座に把握できます。
  • IPの識別と対応:攻撃を試みる特定のIPアドレスを確認することができ、これに基づいてそのIPをブロックするアクションをとることができます。

次の方法で、サーバーレベルまたはアプリケーションレベルで悪意のあるIPをリアルタイムで識別してブロックすることができます。

そのサーバー管理ページから Security » Incidentsに移動します。

クラウドウェイズ Incidents メニュー

アプリケーションレベルで悪意のあるIPを特定してブロックする場合は、そのアプリケーション管理ページの Application Security » Incidentsをクリックします。

クラウドウェイズアプリケーション Incidents

不審な活動と疑われるIPが最新の時間順にリストされています。 イベント 列の上にマウスを置くと、そのIPの詳細な説明が表示されます。

クラウドウェイズファイアウォール

たとえば、上記の画像の「IM360 WAF:Scan attempt by Amazon bot」ログは、「サーバーのファイアウォール(IM360)がAmazon(AWS)サーバーからのボットのナビゲーションの試みを検出して防御した」という意味です。

  • IM360 WAF (Imunify360 Web Application Firewall): 現在使用されているサーバーにインストールされている強力なWebファイアウォールセキュリティプログラム。
  • Scan attempt (スキャン試行): 単なる訪問ではなく、サイトにセキュリティの脆弱性があるのか​​、管理者ページがどこにあるのか、特定のファイルがあるのか​​などを突き刺す(Scan)行為です。
  • by Amazon bot: 接続した主体が「Amazon」帯域のIPを使用するボットという意味です。

検索フィールドにIPを入力して、そのIPが頻繁に訪問するかどうかを確認できます。

クラウドウェイズセキュリティ機能

IPを永久にブロックしたい場合は、右端の3つのドットのアイコンをクリックして Move To Black Listをクリックします。

クラウドウェイズのIPブロック

通常のユーザーのIPが疑わしい活動でブロックされている場合 Move to White Listをクリックして接続を許可します。

クラウドウェイズIP接続を許可

サイトを訪問している通常のユーザーがボットに似たパターンを表示すると、クラウドウェイズファイアウォールによってブロックされる可能性があります。そのような場合は、ここでブロックを解除できます。

サーバー負荷の主犯、頻繁な接続ボットと悪意のあるIPを見つける

この WordPress ブログでは先週、突然海外で普段より過度に多くの訪問者がアクセスし、Googleアナリティクスで訪問者数が通常より2~3倍増加する現象が発生しました。訪問者の数が増えるのは良い現象ですが、異常なトラフィックはむしろサイトSEOを壊し、サーバーの過負荷を引き起こしてサイトの速度を遅くします。

  1. 直接流入(直接流入)比率が60%に上昇し、その流入の平均滞留時間が7秒と非常に短く、全体の平均滞留時間が30秒台に減少しました。
  2. 過度のトラフィックを引き起こすことで、CPU使用率は100%近くまで急増しました。

クラウドウェイズに連絡して問い合わせると、通常のユーザーアクセスという回答を聞きました。しかし、パターンを観察したとき、まったく正常な接続ではないと思いました。そのため、次のような方法で対応して問題を解決できました。

  1. クラウドフレアと連動し、セキュリティルールから流入が多いいくつかの海外国の流入について JSチャムに設定してボットをフィルタリング
  2. クラウドウェイズのトラフィック監視ページで過度に接続する悪意のあるIPと商用ボット(SEOボット)を特定してブロックする

詳細については、次の記事を参照してください。

アプリケーションレベルで上位10個のIPとボットを確認できます。

問題のアプリケーション(WordPress サイト)を選択し、左側の Monitoring » Analytics » Trafficを選択します。これでトラフィックページが表示されます。

頻繁に訪れる悪意のあるIPを特定してブロックする

IP要求 タブに上位10個のIPが表示されます。

クラウドウェイズ 頻繁に訪れる悪意のある IP を特定

デフォルトでは、過去15分間に頻繁に訪問したIPが表示されます。時間 15分、30分、1時間、1日に設定することができます。

例えば、 1日を選択して、過去1日間に頻繁に訪問した上位10個のIPを表示し、疑わしいIPを特定してブロックすることができます。

頻繁に訪れる悪意のあるIPを特定してブロックする

疑わしいIPの隣にある Detailsをクリックすると、どのページにアクセスしようとしたかを確認できます。

悪意のあるIP

上記のように、/wp-adminや/wp-login.phpなどの管理者ページやログインページにアクセスしようとしたり、奇妙な名前のファイル(例:vxrl.php、about.php、main.phpなど)に接続しようとするIPは、躊躇せずブロックする必要があります。

これらのボットの目的は次のとおりです。

  1. 無差別代入攻撃 (Brute Force Attack)
    • ターゲット:/wp-admin、/wp-login.php、/xmlrpc.php
    • 目的:管理者ログインページを見つけたら、IDとパスワードをランダムに代入して管理者権限を奪取しようとします。
    • 判断:あなたがログインしようとしていない場合、このアドレスに入ってくる外部IPはすべてブロックされます。
  2. バックドアと脆弱性のスキャン(Vulnerability Scanning)
    • 対象:vxrl.php、shell.php、wso.php、about.php、main.php、old.phpなど
    • 目的:
      - vxrl.php:有名なハッキングツール(Webシェル)のファイル名です。以前にハッキングされて植えられていた後部ドア(Backdoor)があるか突き刺すことです。
      - about.php / main.php: WordPress デフォルトのファイルではなく、奇妙な場所にあるファイルを呼び出して、セキュリティの悪いプラグインやテーマの脆弱性を見つけようとします。
    • 判断:このようなファイル名を呼び出すIPはサイトの内容を見に来たのではなく、「穴」を探しに来た泥棒です。

ブロック方法は

  1. クラウドフレアでセキュリティルールを設定してブロックする
  2. Cloudways の Firewall から Blacklist に追加するか、
  3. .htaccessファイルを介して直接ブロックできます。

クラウドフレアを使用していない場合は、クラウドウェイズのファイアウォールから直接IPを追加してブロックしてください。クラウドウェイズのサーバーファイアウォールで特定のIP / IP帯域をブロックまたは許可するように設定したり、特定の国をブロックしたりできます。

クラウドウェイズを使用していない場合は、.htaccessファイルに次のコードを追加してブロックを試すことができます。

<Limit GET POST>
	Order Allow,Deny
	# 특정 악성 IP 차단 (한 줄에 하나씩 추가)
	Deny from 123.45.67.89
	Deny from 98.76.54.32
	Deny from 11.22.33.44
	
	Allow from all
</Limit>

特定の帯域幅をブロックすることも可能です。

<Limit GET POST>
	Order Allow,Deny
	# 1. 단일 악성 IP 차단
	Deny from 192.168.1.5
	Deny from 10.0.0.1
	
	# 2. 특정 대역(IP Range) 통째로 차단 (예: 특정 국가나 데이터센터)
	Deny from 222.239.104.0/24
	
	# 나머지는 모두 접속 허용
	Allow from all
</Limit>

私は安定したらクラウドフレアでプロキシを解除する予定なので、クラウフレアでもブロックし、CloudwaysのファイアウォールでもブロックするようにIPを登録しました。 (.htaccessファイルで追加したコードはコメントアウトして実行されないように変更しました。)

👉 IPをブロックするときは、慎重にブロックするかどうかを決定してください。私のIP、通常の検索エンジンボット(例えばBingBot)のIP、私のサーバーのIP、そして通常の人間の訪問者のIPをブロックしないように注意してください。

👉この記事を書いた後、クラウドフレアは問題を引き起こして連携を解除し、クラウドウェイズファイアウォールを介してのみ悪意のあるIPをブロックしています。

商用SEOボット(悪意のあるボット)を特定してブロックする

Monitoring » Analytics » Traffic » Bot Traffic タブでよく訪れるボットを確認できます。

クラウドウェイズボットトラフィック

BingbotやGooglebotは通常の検索エンジンボットなので、ブロックしないでください。上の図では バークロウラーはフランスのSEO分析ツールである「Babbar」でバックリンクデータ収集のために運営するボットで、一般ブログにはトラフィックの助けなしにサーバーリソースのみを消費する商用クローラーです。

これらのボットはブロックすることを検討することができます。

2つの方法でブロックできます。以下は私のブログで共有するコードです。

robots.txtファイル:

robots.txtファイルに次のコードを追加して、ボットがクロールしないように指示できます。

# ========================================
# 2. Block SEO / marketing crawlers
# ========================================
User-agent: Barkrowler
Disallow: /

User-agent: MJ12bot
Disallow: /

User-agent: proximic
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: SemrushBot-SA
Disallow: /

User-agent: AhrefsBot
Disallow: /

User-agent: DotBot
Disallow: /

User-agent: Mediatoolkitbot
Disallow: /

User-agent: PetalBot
Disallow: /

User-agent: TrendictionBot
Disallow: /

User-agent: Trendiction
Disallow: /

User-agent: DataForSeoBot
Disallow: /

User-agent: Bolt
Disallow: /

User-agent: FlipboardProxy
Disallow: /

User-agent: SeznamBot
Disallow: /

ただし、一部の商用ボットは robots.txt ディレクティブを無視してクロールできます。

.htaccess ファイル:

.htaccessファイルに次のコードを追加して接続をブロックできます。

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{HTTP_USER_AGENT} (SCspider|Textbot|s2bot|MJ12bot|YandexBot|SemrushBot|AspiegelBot|BLEXBot|webmeup-crawler|oBot|SiteExplorer|BaiDuSpider|Barkrowler|proximic|PetalBot|Trendiction|DataForSeoBot|Bolt|FlipboardProxy|SeznamBot) [NC]
	RewriteRule ^ - [F,L]
</IfModule>

これにより、ほとんどの商用ボットの接続が大幅に削減されます。実際にコードを追加して一日ほど過ぎると以下のように著しく減少しました。

ボットブロック後のボットトラフィックのリクエスト

上記の画像では、archive.orgはウェイバックマシン(Wayback Machine)'を運営する非営利団体であるインターネットアーカイブ(Internet Archive)のボットで、私のブログの歴史が保存されることを望むときは、接続を許可することをお勧めします。 (私のサイトが永久に消えてしまった場合は、ウェイバックマシンの過去のバックアップを参照してサイトのコンテンツを回復するのに役立ちます。)

ビンボットが少し過度に接続されます。 Bingbotのクロール速度を制御するコードをrobots.txtファイルに追加しましたが、Bingbotはそれを無視する傾向があるようです。本来はクロールディレイを10に設定しましたが、効果がなくて30に変更しましたが、依然としてビンボットの訪問が高い水準のようです。

# ========================================
# 3. Bingbot crawl rate limit (effective mainly for Bing)
# ========================================
User-agent: bingbot
Crawl-delay: 30
Allow: /

自分のサイトのコンテンツがチャットGPT、クロード、ジェミナイ、Perplexityなど、生成型AIのトレーニングに使用されないようにしたい場合は、次のコードを追加できます。

# ========================================
# 1. Block AI training and specific crawlers
# ========================================
User-agent: Baiduspider
Disallow: /

User-agent: Baiduspider-video
Disallow: /

User-agent: Baiduspider-image
Disallow: /

User-agent: Yandex
Disallow: /

User-agent: YandexBot
Disallow: /

User-agent: Amazonbot
Disallow: /

User-agent: Applebot-Extended
Disallow: /

User-agent: GoogleBot-Extended
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: GPTBot
Disallow: /

User-agent: meta-externalagent
Disallow: /

User-agent: anthropic-ai
Disallow: /

User-agent: cohere-ai
Disallow: /

User-agent: Diffbot
Disallow: /

User-agent: ImagesiftBot
Disallow: /

User-agent: Omgilibot
Disallow: /

User-agent: PerplexityBot
Disallow: /

別の方法でクラウドフレアでボットブロックオプションを有効にすることもできます。

Perplexityなどの一部のAIボットは、robots.txtファイルルールを無視してコンテンツをクロールすることもできます。

👉ブロックする前にすでに学んだコンテンツはまだAIで利用されます。

Wordfenceセキュリティプラグインで悪意のあるIPをブロックする

クラウドウェイズは強力なサーバーファイアウォールを提供しているので、あえてセキュリティプラグインをインストールする必要はありませんが、セキュリティを強化したい場合はWordfenceプラグインをインストールできます。

区分クラウドフレア(Cloudflare).htaccess(サーバー設定)Wordfence (プラグイン)
ブロック位置サーバー外部 (ネットワークエッジ)サーバー入口 (Apache Webサーバー)WordPress 내부 (PHP/DB)
サーバー負荷なし(最高)
サーバーはまったくわからない
少ない
テキストのみを読んで拒否
多い(注意)
プログラム実行後の拒否
トラフィックを節約最高
サーバー到達前のブロック

接続要求は受け取る
悪い
データはすでに入っています
推奨用途国家ブロック、DDOS防御、悪意のあるボットの一括ブロック特定のスクレーパーボット、個々のIPブロックログインセキュリティ、インテリジェントハッキング検出

ワードフェンスを使用すると追加のセキュリティが強化されますが、サイトの速度に影響を与える可能性があり、 WordPress プログラムの実行後にIPをブロックするので、クラウドフレアや.htaccessファイルを介してブロックするのに比べてサーバー負荷が大きい方です。

私はWordfenceを使用していませんが、Didos攻撃の脅威がある場合やセキュリティをさらに強化したい場合は、インストールすることを検討できます。マルウェア(マルウェア)感染の予防にも役立ちます。

👉サイトの速度が重要な場合は、プラグインのインストールを最小限に抑え、重いプラグインのインストールを控え、 GeneratePressのようなテーマを使用し、キャッシュプラグインをインストールして設定すると、速度を向上させるのに役立ちます。

クラウドウェイズセキュリティ警告メール

参考としてクラウドウェイズを利用する場合、サイトにセキュリティの脆弱性がある場合はメールで通知を送信します。主に2種類のセキュリティ関連の警告メールが送信されることがあります。

WordPress コア、プラグイン、テーマにセキュリティの脆弱性が発見され、最新バージョンにアップデートされていない場合は、警告が送信されます。

クラウドウェイズセキュリティ警告メール

マルウェア感染が検出されても、電子メール警告が送信されます。この場合、実際のマルウェアに感染しているかどうかを確認した後、対応するようにしてください。

ディドス攻撃防御

ディドス(DDoS)とは、ハッカーが感染させた多数のコンピュータ(ゾンビPC)を利用して特定のウェブサイトに同時に莫大なトラフィックを集中させ、サーバーを麻痺させ、一般ユーザーの接続を遮断する攻撃です。

個人ブログを相手にディドス攻撃は非常にまれですが、ディドス攻撃単価が下落し、小規模サイトを対象としたディドス攻撃が増えている傾向です。

このブログでは、2024年8月から9月の間に1ヶ月間、激しいディドス攻撃を受けました。初めて攻撃されたときにはどのように対応すべきか分からなくて慌てましたが、クラウドウェイズの助けを借りて15回以上ディドス攻撃を防御したため、攻撃者が効果がないと思ったのか攻撃が止まりました。

ディドス攻撃を頻繁に受ける場合、クラウフレアを活性化して攻撃を防御することができます。

DDOS攻撃が発生した場合、クラウドフレアでUnder Attackモードを有効にし、この記事の内容を参照して過度の流入が起こる攻撃IPを確認し、クラウドフレアと.htaccessファイルを介してブロックすると攻撃が緩和され防御になります。

参照

3のコメント

コメントを残す

  1. サーバー負荷の問題は本当に面倒ですが、悪意のあるIPやスパムボットが原因でサーバーが遅くなったり、サイトがダウンしたりする現象が発生することがある場合に便利な情報です。クラウドウェイズのリアルタイムセキュリティログ機能が役に立つと思います。頻繁にアクセスする異常なトラフィックを確認してブロックすることができるなんて、サイトの安定性に大いに役立つと思います。

    返信
  2. サーバー負荷の問題は実際のオペレーターにとって大きな悩みです。特に悪意のあるボットやスパムIPが過度のトラフィックを引き起こすのは本当に面倒なことです。クラウドウェイズのセキュリティログ機能がリアルタイムで疑わしい活動を監視してくれれば、即時の対応が可能になり、本当に心強いと思います。

    ところで、IPブロックに加えて、他のセキュリティ強化方法も考えてみましょうか?たとえば、特定の時間帯にのみ接続を制限したりなど...

    返信