500エラーの原因確認と改善(海外からの不正アクセス)

以前も500エラーと503エラーの原因確認と改善(さくらインターネット)の記事で、WordPressで編集作業中に500や503の Internal Server Error が出る、というお話をしました。
前回エラーが頻発した主な原因は、サイトをHTTPS化したことに伴ってGoogleさん等のボットが頻繁に見回りに来ていたせいだったのですが、今回は海外からのスパムアクセスが主な原因でした。
それらのIPアドレスとユーザーエージェントをブロックしたので、改めてエラーの確認方法とブロック手順をご説明してみます。

インターネットサーバーエラーの原因とまず確認するべきこと

500エラーの主な原因

500エラーは「 サーバー内部でエラーが起きてるからページが表示できない 」状態です。

・サーバー側の障害
・サーバーの限界を超えたアクセス集中
・CGIやPerlなどのプログラムの記述が間違っている
・大きなデータを頻繁に送信・保存したために規制がかかった
 など

念の為、障害情報のページを見て、急なメンテナンスやサーバーエラーが掲載されていないことを確認しましょう。

503エラーの主な原因

503エラーは Service Unavailable(サービス利用不可)というエラーコードです。
「 サーバーにアクセスできず、ページが表示できない 」という状態を指します。

・htaccessファイルの記述が間違っている
・CGIやPerlなどのプログラムの記述が間違っている
・WordPressの内部エラー
 など

リソース情報でエラー件数を確認

とりあえずエラーがどのくらい発生しているかを確認するためにサーバーコントロールパネルからリソース情報を確認します。

(1)サーバーコントロールパネルにログイン

サーバーコントロールパネルにアクセスしてログイン。
ここのサービスパスワードはさくらインターネットから通知されたもので、自分で設定したパスワードではないので注意。
さくらインターネット独自SSL登録-0

※上記のサービスパスワードが分からなくなった場合には、 会員メニューからサーバーコントロールパネルに入ることもできます。
さくらインターネットの会員メニューにアクセスしてログインし、【 契約情報 】⇒【 契約サービスの確認 】をクリック。
さくらインターネット独自SSL登録-1
【 サーバー設定 】をクリックしてサーバーコントロールパネルを開きます。
さくらインターネット独自SSL登録-2

(2)リソース情報

サーバーコントロールパネルの左メニュー【 リソース情報 】⇒リソース使用状況でエラーの発生件数や人数を確認。
エラー原因を記載してくれていることもあるので【 コメント 】欄も確認しておきましょう。
サーバーコントロールパネル
エラーコメントやエラーログを見てもイマイチ何がどうなっているか分からない場合はさくらインターネットのサポートに問い合わせてみてください。

エラーログで原因を探る

サーバーコントロールパネルの 左メニュー『 アプリケーションの設定 』内の【 アクセスログの設定 】⇒【 エラーログ 】をクリック。
サーバーのエラーログ
エラーログにエラー原因が記載されているので、その中から連続してエラーが発生しているIPアドレスを見つけます。

IPアドレスはいわば『ネットに接続している機器がどこにあるかの住所』、ドメインは『そのIPアドレスと紐付けられている表札』のようなものです。
基本的に一つの機器(PCやスマホのネットワーク)につき一つ割り振られているため、IPアドレスが分かれば、そのIPアドレスをブロックして自サイトへのアクセスを禁止することができます。
エラーログのIPアドレス
ドメイン/IP検索 などのIPアドレス検索サービスを利用して、そのIPアドレスのドメインや所在地を検索します。
IPアドレス検索
例えば【 42.224.0.12 】を検索すると、このIPアドレスのドメインが【 hn.kd.ny.adsl 】、そのIPアドレスが所属している国が【 中国 】であることが分かります。
IPアドレス検索結果
海外からのこうした連続アクセスは、管理画面やメールフォームへの不正アクセスを試みるものが大半なので、気づいたらすぐにブロックしておきましょう。

スパムクローラー:hn.kd.ny.adsl(360Spider)

サイトに訪れるクローラー(ボット)という自動プログラムには、GoogleさんやBingさんなどの正規のクローラーと、不正なクローラー(スパムクローラー)の2種類が居ます。
スパムクローラーは頻繁にアクセスしてこちらのサーバーに負荷をかけたり、総当たり攻撃(ブルートフォースアタック)でパスワードを解除してサーバーやブログの管理画面に侵入しようとしたりします。

今回、上で検索をかけて出てきた【 hn.kd.ny.adsl 】というドメインも、実際にはドメインは存在しない【 360Spider 】というユーザーエージェントのスパムクローラーです。
次の項目でIPアドレスとユーザーエージェントのそれぞれでサイトへのアクセスを制限する方法をご説明します。

IPアドレスとユーザーエージェントをブロックする

ご自分で.htaccessファイルを編集できる方は該当するIPアドレスとユーザーエージェントを記述してブロックしてください。
 ・ご参考に:【.htaccess】特定の相手のアクセスを拒否・サイトに制限をかける

.htaccessファイルの編集は慣れてないし良く分からない、という方でも、WordPressサイトを運営されているのであれば、プラグインのWP Securityをインストールして『Blacklist Manager』を使えば簡単にブロックできます。
 ・ご参考に:【プラグイン】All In One WP Security・設定と使い方

【 WP Security 】⇒【 Blacklist Manager 】をクリック。
All In One WP Securityでブロック
サイトにアクセスできないように、ブロックをかけたいIPアドレス、もしくはユーザーエージェントを記述して【 Save Settings 】をクリックし、ページ上部に『Settings successfully updated.』(設定は正常に更新されました)と表示されればOKです。

IPアドレスで拒否したい場合は【 42.224.0.12 】を、ユーザーエージェントでまとめて拒否したい場合は【 360Spider 】を記述します。
このIPアドレスのユーザーエージェントがコレで合ってるのか分からない…という場合は両方を記述しても大丈夫です。
All In One WP SecurityでIPアドレスブロック
このBlacklist ManagerではIPアドレスを範囲指定することもできます。
例えば、このスパムクローラーのIPアドレスは【 42.224.0.●●● 】のように末尾だけ変えてアクセスしてくることがあるので範囲指定してもOK、ということで【 42.224.0.* 】と私は記述しています。

更に詳細なログを残す

【 アクセスログの設定 】でアクセスログも残すように設定します。
アクセスログ設定
翌日以降に前日のログを確認できるようになります。
アクセス解析の使い方はさくらインターネットのヘルプページもご参考に。
アクセスログ設定・アクセス解析

トップ 30 of ○○ 全URL

ヒット数(アクセスが多いURL)の上位30位が記載されます。
ここで不必要にヒット数と転送データ量が多いページやWordPressファイルは改善の余地があるかも。
さくらアクセス解析・ヒット数
私の場合はプラグインの 『 WordPress Popular Posts 』 が一位になっていました。
ウィジェットで全ページに表示されるようにしていたので、データ量が多いのは仕方ない気もしますが、とりあえず試しに停止させてみました。

トップ 30 of ○○ サイト

『トップ 30 of ○○ 全URL』の項目では、自サイトにアクセスしたIPアドレスがアクセスが多い順に30位まで記載されます。
さくらアクセス解析・IPアドレストップ
上でご説明したようにIPアドレスをそれぞれ確認して、スパムアクセスならブロックしておきましょう。
Googleボットや自分のIPアドレスを間違えてブロックしないようにご注意ください。

スパムかも、という目安としてアクセス数(Hits)の割に、アクセスしたファイル数(Files)や訪問回数(Visits)が少ないIPアドレスを探してみてください。

トップ 15 of ○○ ユーザエージェント

『トップ 15 of ○○ ユーザエージェント』の項目では、アクセスの多いユーザーエージェントが15位まで記載されています。
さくらアクセス解析・ユーザーエージェント
一般的でないユーザーエージェント(WindowsやAppleのMac OS以外)が表示されたら、そのユーザーエージェントを調べてみてスパムボットだった場合はブロックしましょう。

PHPバージョンを最新に

PHPのバージョンが古いことがサーバーエラーの原因になることもあります。
サーバーコントロールパネル内のPHPバージョンに関する項目から現在のPHPのバージョン更新可能なバージョンを確認してみましょう。
※ホームページやWordPressサイトに設定しているプログラムによっては旧バージョンのPHPでしか動かないことがあるかもしれないので、ご自分のサイト環境を確認して、問題ないようであれば最新バージョンに更新してください。

さくらインターネットの場合は、コントロールパネルの『 アプリケーションの設定 』内に【 PHPのバージョン選択 】があります。
PHPバージョンの更新

リソースブーストを有効にする

アクセス過多がサーバーエラーの原因かもしれない時は、ひとまずリソースブーストを有効にして2日の間だけ限界をちょっと引き上げて様子を見るのもオススメです。

サーバーコントロールパネルの左メニュー『 運用に便利なツール 』内の【 リソース情報 】⇒リソースブースト【 有効にする 】をクリック。
リソースブーストを有効にする
このブーストを有効にできる期間は2日間だけなので、2日後になってもまだ頻発しているようなら別の解決策を考える必要があります。

タイトルとURLをコピーしました