Защита от DDoS в nginx от тупых ботов

Статус
В этой теме нельзя размещать новые ответы.

Unix

VIP
VIP
30 Мар 2012
683
341
63
49
Ukraine
action.pvpund.com
В рунете гуляет очень много ботнетов с ботами которые делают тупой запрос в корень сайта с рандомным referer — набор произвольных букв и цифр, он вообще не разу не валидный, давайте посмотрим пример, вырезку из access.log:

Код:
78.181.1.75 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "3gd55drbtq3u.ru" "Mozilla/5.0 (Slurp/cat; slurp@inktomi.com; http://www.66c2f8.com/slurp.html)"
175.184.81.46 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "8mvh02mr.ru" "Mozilla/3.0 (compatible; ScollSpider; http://www.826ax3wt3i.com)"
121.112.132.231 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "6jd896o21.net" "Mozilla/5.0 (Windows; U; Win9x; en; Stable) Gecko/20020911 Beonex/0.8.1-stable"
85.110.52.75 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "3ird4abm.biz" "Mozilla/4.7 (compatible; OffByOne; Windows 98) Webster Pro V3.2"
46.35.69.2 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "96otzza82qu22x.net" "Mozilla/5.0 (compatible; LinksManager.com_bot http://gc3883s73p.com/linkchecker.html)"
190.239.177.77 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "yuqel5z2w5l.ru" "Mozilla/5.0 (compatible; Webduniabot/1.0; +http://search.u129c16.com/bot.aspx)"
164.77.114.94 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "ws6h16k3io.biz" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) (8us06m31ml@cq4sp96z2r2om2.com)"
189.231.65.7 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "mh8v8dg8.biz" "Mozilla/4.0 (compatible; KeepNI web site monitor)"
88.228.125.137 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "wje7tjb0z60l1.info" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; PeoplePal 3.0; MSIECrawler)"
88.253.64.120 - - [06/Jun/2012:23:44:03 +0400] "GET / HTTP/1.0" 503 323 "0pflcbf.net" "Mozilla/4.02 [en] (X11; I; SunOS 5.6 sun4u)"
не сложно догадаться о том как это дело порезать в том же nginx, валидный referer это:
1. пустой
2. начинающийся с http
на основе этой информации можно соорудить такую конструкцию в nginx, например

PHP:
    set $badref 0;
    if ($http_referer != "") {
        set $badref 1;
    }
    if ($http_referer !~* (^http://.*|^https://.*) ){
    set $badref "1${badref}";
    }
    if ($badref = 11) {
        return 403;
    }

Что мы делаем?
1. проверяем наличие referer
2. проверяем валидность referer — http:// или https://

В случае если referer проставлен и не попадает под нашу регулярку то отдаем клиенту 403, там уже по желанию (можно 444 но если банить ботов не будете то у вас разрастется количество подключений к серверу т.к 444 вы разрываете соединение и бот каждый раз будет устанавливать новое)

Код:
197.162.27.93 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "xmff21.info" "Mozilla/5.0 (compatible; http://www.86179y.com/bot/ )"
41.42.255.78 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "z67za88.info" "Mozilla/4.5 (compatible; iCab 2.5.3; Macintosh; I; PPC)"
182.178.75.130 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 575 "s1rts87.com" "Mozilla/4.0 (compatible; MSIE 5.0; www.galaxy.com; www.psychedelix.com/; http://www.c13c7r885ftn6e.com/info/crawler.html)"
197.162.27.93 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "pf1d6951v5q.info" "Mozilla/5.0 (compatible; PWeBot/3.1; http://www.88bw6767lsroze.net/robot.php)"
41.42.255.78 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 575 "2x3uh4e9i93.info" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; bgft)"
182.179.89.88 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "g05zw4p1.com" "Mozilla/2.0 (Compatible; AOL-IWENG 3.0; Win16)"
197.162.27.93 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "06py0qpg7nh.biz" "Mozilla/4.72 [en] (BACS http://www.ba.be)"
182.178.75.130 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "0eh0nxe0.com" "Mozilla/4.0 (agadine3.0) www.6emzr1bhndn60b.de"
182.179.89.88 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "9o09t6013.info" "Mozilla/1.1 (compatible; MSPIE 2.0; Windows CE)"
197.162.27.93 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 575 "z610utw00o48z.net" "Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90; BTinternet V8.1)"
197.162.27.93 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 575 "kag3p3b6mb88t2.net" "Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPS; 240x320)"
182.178.75.130 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 575 "h2797w3x8.info" "Mozilla/4.0 (compatible; MSIE enviable; DAUMOA 2.0; DAUM Web Robot; Daum Communications Corp., Korea; +http://ws.m6181in16odr.net/aboutkr.html)"
197.162.27.93 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "7vwbqhcuyf6261.biz" "Mozilla/5.0 (Windows;) NimbleCrawler 1.12 obeys UserAgent NimbleCrawler For problems contact: crawler@healthline.com"
182.178.75.130 - - [29/Dec/2012:20:48:08 +0400] "POST /index.php HTTP/1.0" 403 173 "2899j9.com" "Mozilla/4.0 efp@gmx.net"

Таким образом боты режутся в реал тайме на фронтенде с точностью 100%

Источник был взят с google, но такое наблюдалось на собственном опыте.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи онлайн

Сейчас на форуме нет ни одного пользователя.

Последние ресурсы

Статистика форума

Темы
3.838
Сообщения
21.202
Пользователи
7.615
Новый пользователь
saneawot11