Openbotもサヨウナラ

投稿日:

はっと気付くと、久々に「過負荷でsendmailが音を上げたログ」が残ってました。

rejecting connections on daemon MTA: load average: 15
rejecting connections on daemon MTA: load average: 27
rejecting connections on daemon MTA: load average: 37
rejecting connections on daemon MTA: load average: 48
rejecting connections on daemon MTA: load average: 59
rejecting connections on daemon MTA: load average: 69
rejecting connections on daemon MTA: load average: 75
rejecting connections on daemon MTA: load average: 79
rejecting connections on daemon MTA: load average: 76
rejecting connections on daemon MTA: load average: 71
rejecting connections on daemon MTA: load average: 60
rejecting connections on daemon MTA: load average: 47
.
.
.

sendmailは(標準設定だと)負荷率12で音を上げちゃうのに、結構70以上の負荷率が記録されてます。コレはちょっとヤバい。

mrtg

040301a.gif

↑これモンですし(>_<;)

ということで、原因となりそうなアクセスをApacheのログから探します。

040301b.gif

どーも↑コレみたい。

Openbot/3.0+(robot-response@openfind.com.tw;+https://www.openfind.com.tw/robot.html)

というこのロボット、すんげぇアクセスの密度が高いです。NaverBotの「約1秒間隔」でも動的コンテンツ(=サーバ負荷が高い)に食らった場合結構酷い事になってたんですが。このロボットは「秒数回」のペースで集中爆撃してくれてます(-_-;)

# Bad agent
SetEnvIf User-Agent "dloader" BadRobot
SetEnvIf User-Agent "NPBot" BadRobot
SetEnvIf User-Agent "Naver" BadRobot
SetEnvIf User-Agent "SakeBot" BadRobot
SetEnvIf User-Agent "Openbot" BadRobot

<Files *>
Order allow,deny
Allow from all
Deny from env=BadRobot
</Files>

ちうことで、このロボットも.htaccessでお断わりする事にしました。バイバイ(^_^)/~


その後robots.txtで対策した方がいーんじゃないの?というツッコミを頂きました。

確かに「apacheが各リクエストに対して403を返す」よりも「クローラーがrobots.txtを読んで最初からリクエストを出さない」ほうが効率いいです。これなら無駄なリクエストが溢れかえる事もない。

User-agent: Naver*
Disallow: /(禁止したいディレクトリ)/

User-Agent: Openbot*
Disallow: /(禁止したいディレクトリ)/

ということで、0バイトのnullファイルだったrobots.txtを↑こんな風にしときました。

Disallow:のあとの空行は大事らしいので、きっちりあけてます。

当初は

「あの悪評の高いNaverbotが素直にrobots.txtの言うこと聞くやろか?」

と訝しみながらrobots.txtに↑こう書いてファイヤーウォール開けてみたんですが、確かに(なんかしつこく、繰り返し繰り返しrobots.txtを読んでますが)Naverbotの禁止ディレクトリへのアクセスはぴたっと止まったようです。一応robots.txtは遵守するようですね。