0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazonbotからの簡易的な防衛術(nginx)

Posted at

はじめに

Amazonbotから弊管理下にあるwikiへのアクセスがあまりにもひどい。
数秒に1回、しかも500個以上のIPから分散してbotアクセスしてくるのは、いくらなんでもやりすぎです。
UserAgentでbotだと名乗れば何をしてもいいわけではありません。
本当はこんなことをしなくてもよいようになればいいのですが、しょうがないのでUserAgentを見てbotの場合は簡易的に403を返すようにしました。
ついでに robots.txt も設置しておきました。
下記の設定例は、私の方でnginxに行った設定を一般化したものです。

各種設定例

wiki.conf
server {
    server_name wiki.example.com;

    listen [::]:80;
    listen 80;
    root /var/www/wiki/

    set $is_bot 0;
    if ($http_user_agent ~ (Amazonbot|other_bot_user_agent)){
        set $is_bot 1;
    }

    location ^~ /static/ {
        alias /var/www/internal/static/;
        internal;
    }

    location = /robots.txt {
        rewrite ^(.*)$ /static/robots.txt;
    }

    location / {
        if ($is_bot = 1) {
            error_page 403 /static/bot_403.txt;
            return 403;
        }
    }
}
robots.txt
User-agent: Amazonbot
Disallow: /
User-agent: other_bot_user_agent
Disallow: /
bot_403.txt
DISALLOWED REQUEST! FOLLOW GUIDANCE ON robots.txt!

※お好みで文面を変えたり、任意のHTMLを作成・設定してもよいと思います。

おわりに

おわりです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?