なんだか昨日24日のアクセスが多いので気になってログを調べた。
MRTGが示すところによると、どうやら24日の19:00台にアクセスが集中した模様。
加えてWebプロセスもガツ上がり。
なので、Webアクセスログの内「19時台」のアクセスを対象として接続元IPアドレスをカウントしてみた。おかげで夜ふかししちゃったけど、どうせこのままじゃぁ気になって寝れないし、明日休みだから許してね、自分。
[root@vps1 ~]# zgrep '2011:19:' /var/log/httpd/blog/access_log.1.gz | awk '{print $1}' | sort | uniq -c | sort -nr | head
352 184.105.140.157
158 ***.***.***.***
92 ***.***.**.**
59 **.***.***.**
26 ***.***.***.***
25 ***.***.**.***
24 ***.***.**.***
23 **.**.***.***
23 ***.***.***.**
21 **.***.***.**
[root@vps1 ~]#
上位にある「184.105.140.157」を含むログを見てみた。
[root@vps1 ~]# zgrep 184.105.140.157 /var/log/httpd/blog/access_log.1.gz | head -n1 184.105.140.157 127.0.0.1 - - [25/Nov/2011:19:30:33 +0900] "GET /this_page_should_not_exist.fake HTTP/1.0" 404 11305 "-" "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/532.4 (KHTML, like Gecko) Qt/4.6.3 Safari/532.4" "-" "15576" [root@vps1 ~]# [root@vps1 ~]# zgrep 184.105.140.157 /var/log/httpd/blog/access_log.1.gz | tail -n1 184.105.140.157 127.0.0.1 - - [25/Nov/2011:19:34:19 +0900] "GET /category/%25e3%2582%25bb%25e3%2582%25ad%25e3%2583%25a5%25e3%2583%25aa%25e3%2583%2586%25e3%2582%25a3/ HTTP/1.0" 404 11406 "-" "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/532.4 (KHTML, like Gecko) Qt/4.6.3 Safari/532.4" "-" "13314" [root@vps1 ~]#
226秒間に352回のアクセスがあった。
それに加えて「this_page_should_not_exist.fake」 というファイルへアクセスをしていると思われ、これはGoogleのBotが404ページを確認するために行うのと同様のアクセスだが、これだけでは不正であることは判断できないので、くれぐれも「this_page_should_not_exist.fakeへアクセスしている接続元は不正だ」とは判断しないようにして頂きたい。
WhoisでこのIPアドレスを調べてみた。加えてインターネット上で少し検索したところ「Hurricane Electric」という会社が発しているボットのようだ。こんなに短時間にアクセスされちゃサーバーも負荷が上がっちゃうよ!ってことで、「Hurricane Electric」君のIP帯をガッツリ拒否してあげることにしました。
IP帯は以下のURLを参考にしました。
http://www.webmasterworld.com/printerfriendlyv5.cgi?forum=11&discussion=4348490&serial=4348722
上記URLで確認できるIPアドレスをwhoisで確認し、「Hurricane Electric」 が利用するIPアドレスであることを確認してから、whoisで確認できたIP帯を一覧にしました。
64.62.128.0/17 64.71.128.0/29 65.19.128.0/25 65.49.0.0/24 66.220.0.0/19 72.52.64.0/24 74.82.0.0/24 184.104.0.0/17 209.51.160.0/24 216.66.0.0/30 216.218.128.0/24
上記IPアドレス帯を拒否しました。
Apacheでの制限方法は.htaccessを設置し以下のように記述してください。
Order deny,allow # deny from Hurricane Electric bot Deny from 64.62.128.0/17 Deny from 64.71.128.0/29 Deny from 65.19.128.0/25 Deny from 65.49.0.0/24 Deny from 66.220.0.0/19 Deny from 72.52.64.0/24 Deny from 74.82.0.0/24 Deny from 184.104.0.0/17 Deny from 209.51.160.0/24 Deny from 216.66.0.0/30 Deny from 216.218.128.0/24
なお私の場合、80番ポートでListenしているReverseProxyのSquid君にてアクセス拒否の設定を行いました。以下の様に「acl」を指定してやり、それから該当acl「Hurricane_Electric」に関しては利用しているcache_peerにアクセスできないようにしました。
acl Hurricane_Electric src 64.62.128.0/17 64.71.128.0/29 65.19.128.0/25 65.49.0.0/24 66.220.0.0/19 72.52.64.0/24 74.82.0.0/24 184.104.0.0/17 209.51.160.0/24 216.66.0.0/30 216.218.128.0/24 cache_peer_access myAccel1 deny Hurricane_Electric cache_peer_access myAccel2 deny Hurricane_Electric
原因が分かったので、Counterize IIのテーブルから該当アクセスを削除し、
正常にアクセス数が表示されるようになりましたとさ。
おしまい。
コメント