Блокировка блоков на сайте

12
D
На сайте с 07.11.2000
Offline
219
1490
Сделал блокировку парсинга сайтов
Блокировка идет автоматически: анализ лога по крону каждые 20 минут (позже изменю на 15).

Волнует не нагрузка на сервера, а дубликаты моих сайтов по сети.

IP банятся с помощью команды:
iptables -A INPUT -s IP. IP.IP.IP -j DROP

От списка подсетей IP ботов (яндекса, гугла) отказался. Т.к  достаточно определения  хоста по IP. Это исключит проблемы с новыми IP.

Есть черный список ЮзерАгентов:
my $bad_agent = "adbeat_bot|ahrefssiteaudit|alexibot|aqua_products|asterias|attackbot|b2w|backdoorbot|becomebot|blackwidow|blekkobot|blowfish|botalot|builtbottough|bullseye|bunnyslippers|ccbot|cheesebot|cherrypicker|chinaclaw|chroot|clshttp|collector|control|copernic|copyrightcheck|copyscape|cosmos|craftbot|crescent|curl|custo|demon|dittospyder|dotbot|downloader|dumbot|ecatch|eirgrabber|email|emailcollector|emailsiphon|emailwolf|enterprise_search|erocrawler|eventmachine|exabot|express|extractor|extractorpro|eyenetie|fairad|flaming|flashget|foobot|foto|gaisbot|getright|getty|getweb!|gigabot|github|go!zilla|go-ahead-got-it|go-http-client|grabnet|grafula|grub|hari|harvest|hatena|antenna|hloader|hmview|htmlparser|httplib|httrack|humanlinks|ia_archiver|indy|infonavirobot|interget|intraformant|iron33|jamesbot|jennybot|jetbot|jetcar|joc|jorgee|kenjin|keyword|larbin|leechftp|lexibot|libweb|libwww|linkextractorpro|linkpadbot|linkscan|linkwalker|lnspiderguy|looksmart|lwp-trivial|mass|mata|midown|miixpc|mister|moget|msiecrawler|naver|navroad|nearsite|nerdybot|netants|netmechanic|netspider|netzip|nicerspro|ninja|nutch|octopus|offline|openbot|openfind|openlink|pagegrabber|papa|pavuk|pcbrowser|perl|perman|picscout|propowerbot|prowebwalker|psbot|pycurl|pyq|python-urllib|queryn|quester|radiation|realdownload|reget|retriever|rma|rogerbot|scan|screaming|frog|seo|scooter|searchengineworld|searchpreview|semrushbot-sa|seokicks-robot|sitesnagger|smartdownload|sootle|spankbot|spanner|spbot|spider|stanford|stripper|sucker|superbot|superhttp|surfbot|surveybot|suzuran|szukacz|takeout|teleport|telesoft|thenomad|tocrawl|true_robot|turingos|twengabot|typhoeus|url_spider_pro|urldispatcher|urllib|urly|vampire|vci|voideye|warning|webauto|webbandit|webcollector|webcopier|webcopy|webcraw|webenhancer|webfetch|webgo|webleacher|webmasterworld|webmasterworldforumbot|webpictures|webreaper|websauger|webspider|webster|webstripper|webvac|webviewer|webwhacker|webzip|webzip|wesee|wget|widow|woobot|www-collector-e|wwwoffle|xenu";


Для каждого IP  определяется hostname (хост) и кешируется.


Хорошие хосты, которые не банятся вообще:
my $host_names_allow ="vkontakte\.ru|search\.msn\.com|googlebot|yandex\.com";


Идет анализ хвоста лога ( 14 Мб ).
Для каждого IP пишется в массив список всех посещенных страниц.  Выбирается 15 самых шустрых IP и:
1. Если IP не посещает страницы, инициация загрузки которых вызывается из javascript сайта - порог бана 300 просмотренных страниц.
2. Если  юзерагент есть в списке плохих  - порог бана 150 просмотренных страниц.
3. Для всех остальных   - порог бана 600 просмотренных страниц.
4. Если хост IP в списке "хороших хостов" - не банится вообще.
5. Еще  планируется бан по списку зловредных запросов: поиск уязвимостей и админок.

Каждый бан - уведомление в Телеграм.

Выглядит так. На картину поместилось 2 сервера из 4х.


Обрезал список - т.к. есть и мои IP в списке.

Кто делал похожее?
Может что-то не учел?

D
На сайте с 07.11.2000
Offline
219
#1
Опечатка в заголовке :(

Правильно:
Блокировка БОТОВ на сайте .
D
На сайте с 28.06.2008
Offline
1101
#2
Dimka :
Каждый бан - уведомление в Телеграм.

И вместо работы теперь вы будете читать телеграм ))

Я сделал проще, работает уже 5 лет без нареканий. Я тоже на автомате по крону проверяю хосты у IP но только у тех, которые имеют юзер агент поисковых ботов, а IP не совпадает с белым списком - если хост вдруг поисковика, мне приходит уведомление и я обновляю белый список (за 5 лет обновлял раза 4).

Еще я сделал проверку логов на предмет поиска IP которые шарятся по страницам и не скачивают статику (картинки, JS) и этих тоже в бан. Логи я разделил по протоколам и боты поисковиков в отдельны лог пишутся, поэтому проще быстро все анализировать. Баню через подключение дополнительного конфига в Nginx (который обновляется постоянно) чтобы не засирать аптейблс тысячами IP

D
На сайте с 07.11.2000
Offline
219
#3
Dram #:
Я сделал проще, работает уже 5 лет без нареканий.

Я же помню. Вы перейдите на следующую страницу по Вашей ссылке и вспомните меня)

Dram #:
Nginx (который обновляется постоянно) чтобы не засирать аптейблс тысячами IP

У меня есть подозрение, что iptables будет быстрее или это не так? 
Как минимум fail2ban активно работает с iptables.

lealhost
На сайте с 07.06.2014
Offline
136
#4
ip route add blackhole ip/netmask

Экологически чистое зануление маршрута. 😀

D
На сайте с 07.11.2000
Offline
219
#5
lealhost #:

Экологически чистое зануление маршрута. 😀

Почему blackhole  лучше/экологичнее?

lealhost
На сайте с 07.06.2014
Offline
136
#6
Dimka #:

Почему blackhole  лучше/экологичнее?

Меньше накладных ресурсов, маршрут отправляется в нулл на 3 уровне модели OSI (считайте это уровнем IP-адреса).

Формально, iptables тоже так умеет, если это raw и если это PREROUTING, однако, он работает с netfilter, что по моему мнению может добавить накладные ресурсы, но не факт.

В iptables вы дропаете пакет на 4 уровне - это уже когда идет разбор tcp/udp-пакета, адреса назначения, протокола и прочего, что в данной ситуации нам совершенно не нужно.

iptables хорош, если вам нужно не только заблокировать, но и посчитать количество пакетов, зажурналировать их.

Mik Foxi
На сайте с 02.03.2011
Offline
1076
#7
Я с 2017 года использую этот способ, лучше не придумать, ничего не нужно анализировать, все автоматом не пускает никаких левых ботов.
Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ + партнерка, до 40$ с продажи.
6
На сайте с 19.06.2021
Offline
18
#8
Антибот в помощь, и ботов как не бывало, ссылку выше кинули.
SS
На сайте с 11.01.2021
Offline
23
#9
Согласен с коллегами выше. Зачем мудрить что-то, в ручную настраивать, разбираться?! Я поставил на свои сайты упомянутый скрипт,настроил, на прямые заходы и соцсети года 2 уже не думаю о ботах, проблем ноль. 
lealhost
На сайте с 07.06.2014
Offline
136
#10
SergiusS85 #:
Согласен с коллегами выше. Зачем мудрить что-то, в ручную настраивать, разбираться?! 

Чтобы не платить 5 тысяч рублей в год за скрипт, который блокирует на уровне PHP 😀

Хотя, этому форуму не помешал бы такой скрипт... 

12

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