The fight against bots with iptables

Оптимизайка
На сайте с 11.03.2012
Offline
396
#11

cloud-shield, sure. The algo was:

1. I've gotten of all hosting providers from hosting101.ru website.

2. Then I detected all ASN numbers of networks they are using

3. Then I fetched all IP ranges for these ASN's from RIPE

4. Then I checked that no real users of my website (~150K uniq IP's from logs) are coming from these networks

5. Then I generated this script

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
Оптимизайка
На сайте с 11.03.2012
Offline
396
#12

update: 27 companies added, and one section for small but nasty various providers was added too.

zip banhammer.sh.zip
root
На сайте с 04.07.2006
Offline
196
#13

Не было замечено случайных срабатываний на боты Y и G?

Оптимизайка
На сайте с 11.03.2012
Offline
396
#14

root, No. True yandexbot comes only from AS13238, and googlebot from AS15169 respectively

cloud-shield
На сайте с 25.01.2017
Offline
54
#15

Оптимизайка, thx for share. I think that I will use your data a little differently (extra checks for requests). Also I can confirm that from the OVH subnets comes a lot of bots.

Защита сайтов от DDoS атак - Cloud-Shield.ru ( https://cloud-shield.ru )
D
На сайте с 28.06.2008
Offline
1101
#16

Насколько такой огромный список тормозит загрузку страницы?

---------- Добавлено 06.03.2017 в 16:03 ----------

И второе - не удобнее ли использовать Nginx? (по мне мой код явно более читабелен)

geo $whitelist {
default 0;
# ip server
(айпи вашего сервера) 1;
# боты google
64.68.80.0/21 1;
64.233.0.0/16 1;
66.102.0.0/20 1;
72.14.192.0/18 1;
209.85.128.0/17 1;
216.239.32.0/19 1;
66.249.0.0/16 1;
104.154.0.0/16 1;
# боты yandex
77.88.0.0/18 1;
87.250.224.0/19 1;
93.158.0.0/16 1;
95.108.128.0/17 1;
213.180.192.0/19 1;
141.8.0.0/16 1;
130.193.0.0/16 1;
5.255.253.0/24 1;
178.154.0.0/16 1;
37.9.0.0/16 1;
37.140.150.0/24 1;
# mail.ru
217.69.0.0/16 1;
94.100.0.0/16 1;
# bingbot-msn
40.77.0.0/16 1;
207.46.0.0/16 1;
65.52.0.0/14 1;
157.55.0.0/16 1;
# Yahoo
68.180.0.0/16 1;
67.195.0.0/16 1;
69.147.64.0/18 1;
72.30.0.0/16 1;
74.6.0.0/16 1;
63.250.0.0/16 1;
# sputnik
5.143.0.0/16 1;
# opera-mini.net
82.145.0.0/16 1;
107.167.96.0/19 1;
185.26.180.0/23 1;
37.228.104.0/22 1;
37.228.111.128/26 1;
141.0.0.0/16 1;
}
geoip_country /usr/share/GeoIP/GeoIP.dat;
map $geoip_country_code:$whitelist:$server_protocol $allowed_country {
default yes;
"DE:0:HTTP/1.1" no;
"NL:0:HTTP/1.1" no;
"FR:0:HTTP/1.1" no;
"CA:0:HTTP/1.1" no;
"US:0:HTTP/1.1" no;
"GB:0:HTTP/1.1" no;
}

В нужный хост добавляем

if ($allowed_country = no) {
return 444;
}

Список стран редактируем на свой вкус

DV
На сайте с 01.05.2010
Offline
644
#17
Dram:
не удобнее ли использовать Nginx

Чем таблицу фаервола?

Это совсем другой уровень. Фаервол отсекает соединения до работы веб-сервера.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
D
На сайте с 28.06.2008
Offline
1101
#18

DenisVS, это я естественно понимаю, но извините + 20.000 строк кода, там хрен че проверишь

DV
На сайте с 01.05.2010
Offline
644
#19

Dram, я не понимаю суть предложения. Засунуть 20.000 строк в конфиг nginx?

D
На сайте с 28.06.2008
Offline
1101
#20

Использовать мое решение в виду его более удобного редактирования и понимания, хоть это и 2 эшелон обороны. Отсечь запросы из стран где куча хостинг центров и нет вашего трафика.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий