ロボットのUserAgent(UA)を弾く

ロボットのUserAgent(UA)を弾く

記事一覧ロボットのUserAgent(UA)を弾く

ふと、最近のロボット事情を調べてみようと、Apache のログからユーザーエージェント(UA)を抜き出してみる。Google や Yahoo は当然なのですが、他にも知らないロボットは結構巡回してるみたいです。少し量がありそうなものをピックアップしてみました。

compatible;Yahoo!Slurp;http://help.yahoo.com/help/us/ysearch/slurp
compatible;Googlebot/2.1;+http://www.google.com/bot.html
+http://search.msn.com/msnbot.htm
compatible;BecomeJPBot/2.3;MSIE6.0compatible;

「NintendoWii;U;;1621;」とかあると、ここ数年の進化を感じます。へぇ、Wii で見てる人とかいるんだ。とりあえず、不要なロボットやアクセスなどは、UA を使って制御するか、ソースアドレスを参考に IP アドレスを Apache レベルで弾くのが妥当なのかなぁ。

GoogleとYahooの主要ロボット

Google と Yahoo の主要ロボットはアクセスログからカウントしないようにしていますが、なぜか連続的なアクセスが続いているので調査してみました。そしたら、こんなユーザーエージェント(UA)が・・・。

Yeti/0.01 (nhn/1noon, yetibot@naver.com, check robots.txt daily and follow it)

どうやら、韓国の NAVER というサイトのロボットらしい。とりあえず、ログからは除外しましたが、もっと手前で弾くかどうかは検討中です。

韓国のロボットをアクセスログの対象から外した矢先にまたもや連続アクセスが・・・。ユーザーエージェント(UA)は下記の通りです。

早稲田大学のとある研究室が作ったロボット

e-SocietyRobot(http://www.yama.info.waseda.ac.jp/~yamana/es/)

どうやら、早稲田大学のとある研究室が作ったロボットみたいです。数年前から稼動しているみたいですが、なんで今頃・・・。とりあえず、ログには邪魔なので除外しなくては。robots.txt で弾くかどうかは検討中。Apache レベルで弾くにも IP アドレスの帯域多いなぁ・・・。

robots.txtの整理

またもやロボット発見。いい加減、robots.txt を整理する時がきたのか。今回は日本のサイトのようなのでサーチはされた方がいいのかな。ユーザーエージェント(UA)は下記の通りです。

Mozilla/5.0 (compatible; BecomeJPBot/2.3; MSIE 6.0 compatible; +http://www.become.co.jp/site_owners.html)

これは、ビカムショッピングサーチというショッピングモールや、商品を検索できるサービスのサイトのようです。サイトではロボットの IP アドレスの帯域を公開していますので、Apache などで簡単に弾くこともできそうです。

[引用]
BecomeJPBotには64.124.85.0~64.124.85.255というIPアドレスが割り当てられています。
上記IPアドレス以外からのアクセスかどうかをご確認ください。
[追記(2007-12-11)]
ただ、このロボットの日本版ではないものもあるので、
UA の場合は、BecomeJPBot と BecomeBot などを弾く必要があります。

IPひろば

忘れた頃にロボット登場。年末年始を利用して本格的に対策しよっと。今度のはこれ。robots.txt は見てくれるみたいです。

MJ12bot/v1.0.8 (http://majestic12.co.uk/bot.php?+)

12 の部分が変動しないなら単純に前方一致で。他のもいろいろ正規表現考えてみますか。そう言えば、Apache で 1 つだけ IP を弾いてるけど、何で弾いてるか覚えてない・・・。コメント書いとけよorz

SetEnvIf User-Agent "^MJ12bot" deny_ua

order allow,deny
allow from all
deny from xxx.xxx.xxx.xxx
deny from deny_ua

そんな IP はこの辺のサイトで調べれるかな?調べてみると中国(cn)らしい・・・。

IPひろば

Verizon Business

またしても新手のロボット?が登場。リモートの IP アドレスと UA は以下の通り。ついでに whois の結果も載せました。

IP : 63.80.56.40
UA : Mozilla/4.0 (compatible; MSIE 4.0; Windows NT; ....../1.0 )

MCI Communications Services, Inc. d/b/a Verizon Business UUNET63 (NET-63-64-0-0-1) 
63.64.0.0 - 63.127.255.255

ApacheでUAを弾く

最近は面倒なので、bot を含む UA をアクセスカウント除外しています。そうしたら、偶然こんなロボットも引っかかってました。

Mozilla/5.0 (Twiceler-0.9 http://www.cuill.com/twiceler/robot.html)

サーバへの負荷も考えると、そろそろ Apache で UA を弾くべきですね。Apache の負荷も上がるので、こっちには全然メリットはないですが。すべてのロボットが robots.txt を見てくれるといいんだけど・・・。

買い物もしてくれるロボット

久しぶりに新たなロボットが登場しました。前にも早稲田大学のロボットが巡回していきましたが、今回も同じく早稲田大学関連のロボット。

クロールが研究目的なのか、クロールした結果を研究材料にするのかはわかりませんが、もっとのんびりと巡回していって欲しいものです。ついでに関連ある広告をクリックして、遷移先で買い物もしてくれるロボットなら大歓迎なのですが・・・。ロボットのユーザーエージェント(UA)です。

larbin_2.6.3 larbin2.6.3@unspecified.mail

IPアドレスベースで弾く

ロボット対策に終わりはないような気はしますが、見つけたものだけとりあえずチェックしていきます。
(まとめサイトを見た方が早いかもしれませんがw)

さて、今回は IE や FireFox などのブラウザのユーザーエージェント(UA)を使った短時間集中アクセス。該当 IP アドレスは 200.90.136.171 です。IP アドレスを調べると国はパナマで、どこかの企業みたい。とりあえず、IP アドレスベースで弾けそうなので、こんなのは Apache レベルで弾いてしまいます。

Ya.com Internet Factory

今回も IE や FireFox などのブラウザのユーザーエージェント(UA)を使った短時間集中アクセス。該当 IP アドレスは 84.78.213.224 です。IP アドレスを調べると国はスペインで whois の結果は Ya.com Internet Factory というところ。

IP アドレスの帯域が 84.78.0.0 - 84.79.255.255 なので、海外だし、もう幅広く Apache で弾いてしまおうかな。即席でとりあえずクラス B 単位にします。

deny from 84.78.0.0/16
deny from 84.79.0.0/16

Apacheの設定例

いい加減、Google と Yahoo 以外のクローラーロボットが邪魔になってきたので、気休めですが、Apache を使ってユーザーエージェント(UA)で弾くことにしました。あとは、ステータスが 403 になっているログを毎日レポートしておけば、間違って除外してしまっているアクセスにもすぐに気付けると思います。

さくらのレンタルサーバの場合は、毎朝 4 時頃に前日分のログアーカイブが作成されるので、リアルタイムのログも見れるといいのになぁ・・・。

Apache の設定例です。deny_ua の部分は適当な文字列に置き換えて下さい。

# SPAM
SetEnvIf User-Agent "Jeeves/Teoma" deny_ua
SetEnvIf User-Agent "Baiduspider" deny_ua
SetEnvIf User-Agent "BecomeBot" deny_ua
SetEnvIf User-Agent "LiteFinder" deny_ua

deny from env=deny_ua

オモロ検索エンジン SAGOOL サグール

新手のロボット発見。ちょっと面白そうだし、そこまで短時間の連続アクセスじゃないので、しばらくの間は様子見しておこうと思います。

オモロ検索エンジン SAGOOL サグール

[IPアドレス]
59.106.82.243

[ユーザーエージェント(UA)]
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1.7) 
Gecko/20070914 Firefox/2.0.0.7/Mozilla/5.0 (MaSagool; http://sagool.jp/)

obiyama.kumamoto.ocn.ne.jp

ユーザーエージェント(UA)対策で、ロボットが落ち着いたと思っていたら今後は熊本のホスト。Deny from obiyama.kumamoto.ocn.ne.jp って対策しちゃったらどこまで影響あるかな?

XXXXX-ipbfXXXobiyama.kumamoto.ocn.ne.jp

とりあえず、アクセスログで様子見です。数日続いたら拒否ってやろ。

NTTレゾナント株式会社のbot

IP アドレスやユーザーエージェント(UA)でアクセスを弾くようにしてから連続的なアクセスは減ったように思います。今日は久しぶりに 1 分間隔くらいのアクセスがあったのでチェックしてみました。ユーザーエージェント(UA)は下記の通りです。

ichiro/3.0 (http://help.goo.ne.jp/door/crawler.html)

これは、NTT レゾナント株式会社が運用している Web クローラみたいですね。goo のヘルプページに説明がありました。悪意のあるものでもないし、実際にチェックしたところ、アクセスの間隔も 1 分ほどなので優良ロボットです。

[gooヘルプ]Webクローラについて

一部抜粋しておきます。

Web クローラとは、インターネット上の Web サーバから
Web ページを網羅的に収集し、検索エンジンのデータベースに
反映させるためのシステムです。「ichiro」は、
NTT レゾナント株式会社が運用している Web クローラの名称です。

*ichiro が収集した Web ページは下記サイトでの
検索サービスに使用させて頂きます。
(1) http://bsearch.goo.ne.jp/
(2) http://mobile.mmm.nttr.co.jp/
(3) http://mobile.goo.ne.jp/

参考カテゴリ

オススメ記事

最新の投稿やよく見られているのオススメ記事一覧です。

AmazonLinuxでEC2起動時にスワップ領域の割り当てに失敗

EC2 起動時のスワップ領域割り当てですが、これまでは以下の記事を参考に、/etc/rc.local を使って行っていました。 ・ Amazon EC2(Linux)のswap領域ベストプラクティス しかし、最近になって、EC2 イン...

>>記事を確認する

【5分でできる】Laravel5.4から5.5へバージョンアップ

Laravel5.5 がついにリリースされたので、5.4 ベースで作っていたものをバージョンアップしてみました。 composer.json の以下の部分を 5.5.* に変更するだけですが、依存関係のパッケージも問題なくアップデ...

>>記事を確認する

【30分でできる】AWSのEC2にgoofysを入れてS3をマウント

過去に携わったプロジェクトで、S3FS の通信状態が悪い時があるので、アプリ側のプログラムを AWS SDK を使ったものに置き換えていこうという施策がありました。 S3FS の導入には関わっていなかったので、導...

>>記事を確認する

【30分でできる】ぐるなびAPIで飲食店の店舗情報取得

過去に作成した「ぐるなびAPI」のプログラムや、ぐるなびの Web Service が新しくなったこともあり、API からの情報取得プログラムを書き換えてみました。 以前の記事は下記になります。 ・ ぐるなびAPIで...

>>記事を確認する

NginxのFastCGIキャッシュで白い画面がキャッシュされる

以前から、トップページにアクセスすると、レスポンスステータスは 200 で返ってくるのに、画面に何も表示されない現象が稀に見受けられたので調査してみました。 さすがに機会損失にも繋がるということで、...

>>記事を確認する

Laravel5.4の認証ユーザーのパスワードハッシュについて

Laravel で用意されている認証モジュールを利用する際、ユーザーモデル(User.php)経由で登録されるパスワードのハッシュ方法について調べてみました。 Laravel 上ではパスワード文字列を bcrypt() のヘルパー...

>>記事を確認する

Laravel5.4のコントローラコンストラクタでAuth::user()が取得できない

Laravel5.4 で認証を通したアクセスに対して、コントローラのコンストラクタでユーザモデルの値を取得しようと思ったら、なぜか Auth::user() の値が取得できなくて悩みました。 public function __construc...

>>記事を確認する

NginxのHSTS(HTTP Strict-Transport-Security)の設定

「Let's Encrypt」のおかげで、全サイト SSL 化していますが、これまで nginx の設定では、http のアクセスがあった場合に https に 301 リダイレクトさせていました。 この場合、Googlebot に http のアク...

>>記事を確認する

GoogleMapのAPIキーの認証情報にリファラURL設定

昔は API キーを指定することで、JavaScript で GoogleMap が表示できていましたが、何年か前に、そのキーに対して認証情報の追加が推奨されました。 新規で発行する場合は必須になっているかもしれませんが...

>>記事を確認する

【30分でできる】AmazonLinuxでApache2.4+php7.1+Laravel5.5

先日、「 VagrantでCentOS6.9のイメージを使う 」の通り、CentOS6.9 には Apache2.4 と PHP7.1 で Laravel のフレームワークが使える環境を構築しました。 ただ、将来的には AWS かつ Amazon Linux 上で動か...

>>記事を確認する