この記事は約4分で読めます。
本文は約2630文字です
怪しい中古ドメインを使ったらサーバー負荷上昇!?|その調査方法は?

中古ドメインを購入すると旧サイトへのバックリンクが張られたままになっていることが多いです。それが中古ドメインを導入するメリットでもあります。
しかし、それが仇となる場合もあります。
例えば、古めかしい慣習のある業界で使われていた中古ドメインはバナーリンクのような仕組みで画像直リンクされていることが多いのです。
自分が購入した野良の中古ドメインは、結構な数の画像の直リンクが張られており、その影響でサーバー負荷(特にCPU使用率)が上昇していました。
リンク元に止めさせるのは難しいので、自衛手段としてこちらで.htaccessでアクセス禁止にしました。
この記事では、中古ドメインなどに張られた画像直リンクをhtaccessで403にする方法をお伝えします。
避けた方がよい中古ドメイン
ドメインに対して不正なアクセスが発生しやすいドメインの種類には次のものがあります。
- 画像の直リンクバナーが設置されていたアダルト系のドメイン
- 中国、ロシアなどのサイトで使われていたドメイン
- オンラインカジノなどのドメイン
記事が入っていない中古ドメインのサイトのCPU負荷が定期的に上昇した
レンタルサーバーのCPUリソースが100%に
レンタルサーバーのcPanelのCPUリソースが100%になってfaultsが発生しました。

記事が入ってない中古ドメインの放置サイトが原因?
faultsが発生した時のプロセスは、中古ドメインを購入して、初期状態のまま放置していたサイトのものばかりでした。
そのサイトは記事も入れていませんし、アクセスも無いサイトです。
しばらく、様子を見ていたのですが、定期的に一瞬だけCPUがfaultsとなり、そのサイトのプロセスが原因のようでした。
中古ドメインのアクセスログを生ログで確認
アクセス集中の原因は画像の直リンクらしい
そのサイトの生のアクセスログを見ると画像の直リンクで404になっていて、原因はコレだろうと思いました。
画像はバナーであり、いわゆるバナーリンクで、画像直リンクでTOPページに埋め込まれているものです。
バナーリンクが張られたTOPページにアクセスがあるたびに画像が読み込まれてこちらは404になりますので、いい迷惑です。
cPanelの場合の生ログやアクセス元の確認方法
mixhostやカラフルボックスなどのcPanelをコントロールパネルにしたホスティングサービスの場合、生ログやアクセス解析をcPanel上で確認することができます。

①『訪問者』でアクセス元と訪問先を確認
訪問者メニューを開くと、訪問者と訪問先のページを確認することができます。
訪問先が画像ファイルになっている場合は、外部からの画像の直リンクです。
そのアクセスが多い場合は、対処する必要があります。
②『Awstats』でアクセス解析を確認
中国や北朝鮮、ロシアなどの第三国からのアクセスが多くないことを確認します。
中古ドメインの場合、運用歴の中で中国人が運用していることも多いので、変な国からアクセスを定期的に送っている場合があります。

③『未加工のアクセス』
未加工のアクセスが生ログになります。生ログを見ると訪問者メニューで確認できない内容も確認できます。
ただし、1日分のログしか見れないので、過去のログについてはダウンロードしてPCで確認します。
④『リソースの使用量』で負荷上昇のタイミングを確認
サーバーで利用できるリソースのリミットに達するとfaultsになります。
リソースの使用量のスナップショットを確認するとfaultsになった時のプロセス一覧が確認できます。
ページを入れていないサイトへのアクセスが多い場合は、直リンクや不正なアクセスの可能性が高いです。
分析の結果、直リンクされた画像のパスが判明
幸い、中古ドメインの画像の直リンク先はhtmlサイトだったため、wordpressサイトの構成ではないため.htaccessで簡単にアクセス禁止にすることができます。
/image/common/xxxx.jpg
のようなパスに画像があるものとして、アクセスされていますので対応は簡単です。
画像 直リンクをすべて禁止するのは問題あり
画像 直リンクをすべて禁止すると起きる問題
画像の直リンクをサイト全体で禁止してしまうと、SNSのシェアなどで画像が表示されなくなります。
画像直リンクはすべて禁止にせずに部分的に禁止する
それを避けるためには、まず、すべてのサイトを禁止した後に、次に自サイトを含めた一部のサイトだけ画像表示を許可する必要があります。
.htaccessでリンクが張られたディレクトリをアクセス禁止にする
今回、直リンクされていた画像は以下のパスにありました。
/image/common/xxxx.jpg
画像直リンクを禁止した.htaccessの内容
画像だけを禁止するのは面倒なので、もともと存在しないディレクトリ丸ごと403になるようにアクセス禁止にします。
order deny,allow
deny from all
.htaccessによる403でも負荷が下がらない場合
最終手段として、Cloudflare CDNを使う方法があります。
Cloudflareを使うことで、レンタルサーバーにアクセスがある前にCloudflareのWAF(ファイアーウォール)でブロックすることができます。
レンタルサーバーの負荷は全く上昇しなくなります。
まとめ
中古ドメインはバックリンクを購入前に確認しますが、画像の直リンクは出てこないので、運用して実際にアクセスがあるまで、わからない場合があります。
リンク元のアクセス数が多い場合、中古ドメインの負荷が高くなってしまいますので、アクセスがないハズなのにサーバーの負荷が高いなと感じたら、サーバーの生ログを確認した方が良いです。

コメント