ロボットの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/

参考カテゴリ

オススメ記事

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

標準出力と標準エラー出力をパイプに渡す

よく、標準出力先をファイルにリダイレクトすることはありますが、意外に標準エラー出力は使う機会がありません。しかし、やはりツールやパッケージ製品になると標準エラー出力も活用されているようです。でも、...

Linux(FreeBSD)

>>記事を確認する

主要無料ブログ5つに対する自動投稿PHPプログラム

アメブロへ楽天APIなどの情報を自動で投稿する の反響が良かったので、どうせならアメブロ以外の無料ブログの XML-RPC を使った自動投稿も紹介したいと思います。これには FC2BlogManager.php というライブ...

PHP

>>記事を確認する

snmpでデバイスの情報を取得

snmpでデバイスの情報を取得するコマンドです。これを元に、ディスクIOなどのMIB値を探します。 $ snmpwalk -v 2c -c {SNMPGROUPNAME} localhost 1.3.6.1.4.1.2021.13.15.1.1.2 (結果の一部) UCD-DIS...

Linux(FreeBSD)

>>記事を確認する

awkで指定したカラム以降をprint表示する

前回、awk で最後のカラム以外を表示してみましたが、今回は指定したカラム以降のカラムを全部表示したいと思います。 例えば、7 個の文字列がカンマで区切られているファイルがあるとしたら、3 番目のカラム...

awk / シェル

>>記事を確認する

CentOSでRedisサーバを使う

冗長化した Web サーバなどで、セッションの管理や、セッションや特定のユーザーに紐付く一時データを管理するのに memcache を使う場面は多いと思います。 その memcache の中でも主流なのが memcached です...

Linux(FreeBSD) / CentOS / Redis

>>記事を確認する

ドメイン取るなら低価格で楽々管理

バリュードメインは、GMO デジロック社の低価格ドメイン総合サービスです。

このサイト含め、私もこれまでに 100 個以上のドメインを取得して管理してきましたが、WHOIS の代理公開も可能なので、無料 SSL 証明書の Let's Encrypt と組み合わせれば、かなりの低価格で SSL サイトも運営できます。

年単位で領収証発行もしてくれるので、たくさんサイトを抱えているアフィリエイターや個人事業主にもオススメです。

AWSの無料利用枠内で複数サイトをサクサクと運営する方法

MySQLでテーブル定義を取得

似たような構成のテーブルを作る時に、今までは mysqldump コマンドで -d オプションを付けて実行していました。 これでも十分に要件は満たせるのですが、MySQL のコンソールからサクっと出したい場合もある...

データベース / MySQL

>>記事を確認する

Poderosa5の登場と文字色と背景色

新しい PC を購入したので、久し振りに Poderosa のインストールをしたのですが、Poderosa-Terminal として最新バージョンの 5 が 2016 年に登場していました。 これ、職場でもインストールしてみたのですが...

Windows / ツール

>>記事を確認する

Laravel5.1からLaravel5.5へアップデートする

LTS だった Laravel5.1 のバグフィックスサポートが 2017 年の 6 月で終わり、セキュリティサポートも 2018 年の 6 月で終了となります。 このタイミングで、兼ねてから発表のあった、次期 LTS の Laravel5.5...

PHP / PHPフレームワーク / Laravel

>>記事を確認する

VagrantでCentOS6.9のイメージを使う

CentOS7 が既に 7.3 まで出ていますが、AmazonLinux がまだ 6 の構成と似ていることから、なかなか 7 系に移行できません。 そこで、Vagrant のイメージも 6 系の最新版を使うと思ったのですが、下記の BOX ...

Linux(FreeBSD) / CentOS / Vagrant

>>記事を確認する