Замена Cloudflare

Aisamiery
На сайте с 12.04.2015
Offline
315
#11
Mik Foxi #:
и зачем сайт на рос аудиторию и вообще рунет аудиторию хостить в
Mik Foxi #:
этих недружественных странах

Вот и у меня такой вопрос, зачем? Хоститесь в РФ для проектов на РФ, в США для проектов на США и так далее. Я понимаю там когда есть сложность, например мы делали проект под ОАЭ, на тот момент оказалось сложно захоститься в самих Эмиратах, но уж в остальном то странно да.

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
Smuel
На сайте с 09.01.2021
Offline
45
#12
damn-doubleclick #:
Меня мало интересует WAF , поскольку есть свой собственный http-flood WAF который работает не хуже Cloudflare WAF из-за адаптации кода под мои нужды.

Тоже интересно. Можешь подробнее рассказать про собственный http-flood WAF?

damn-doubleclick
На сайте с 10.09.2021
Offline
57
#13
Smuel #:

Тоже интересно. Можешь подробнее рассказать про собственный http-flood WAF?

Довольно простой скрипт, в первую очередь нацеленный на борьбу с флуд-трафиком (боты, простые парсеры, краулеры, пользовательский флуд) и усложнению жизни недругам. 

Скрипт записывает в базу данных запросы от пользователей, включая IP, сам запрос и время. Поскольку данных много, таблицу необходимо периодически очищать в зависимости от мощности оборудования и предпочтений владельца.

Скрипт выполняет проверку с выборкой за последние 5 минут, анализируя запросы каждые 2–3 секунды. Можно также проверять каждый новый IP при его добавлении.

Если за последние 5 минут с одного IP поступило 10 запросов, отображается страница с капчей.

Большинство ботов сразу блокируются, продолжая сталкиваться с капчей. За неделю у меня накопилось 7 тысяч IP и десятки ASN, в основном хостинги, серверы для парсеров или прокси.

Для продвинутых ботов и удобства я создал три варианта счётчиков: блокировка (для тех, кто не прошёл даже капчу Cloudflare Turnstile), капча (поставили галочку, но не нажали кнопку) и успешное прохождение (поставили галочку и нажали кнопку «Капча решена»).

Если пользователь пытается пройти проверку или успешно её прошёл, для этого IP создаётся досье: время первого запроса, частые шаблоны запросов, зарегистрирован ли пользователь, есть ли метка Яндекс.Метрики, версия User Agent, часовой пояс, репутация IP, провайдер и тип провайдера.

Если парсер впервые сталкивается с капчей, но не нажимает кнопку «Отправить», счётчик «капча» увеличивается, например: 40 блокировок, 250 капч, 0 пройдено.Поскольку IP-адресов слишком много, проверка репутации IP выполняется только после нажатия кнопки «Отправить». Боты продолжают сталкиваться с капчей, парсеры её «потребляют», но проверка и применение правил WAF происходят на последнем этапе.

По количеству блокировок и капч я составил топ IP, проверил самые подозрительные, собрал ASN и выяснил, что все запросы идут без регистрации, без cookies и без метки Яндекс.Метрики. Создал правило автобана: если все условия совпадают и IP принадлежит подозрительному провайдеру из списка ASN, он блокируется.

Через неделю кто-то начал использовать cookies и авторизацию, но статистика блокировок и капч остаётся слишком высокой, что нехарактерно для человека. Я выявил несколько таких случаев и добавил ещё одно правило автобана: если соотношение капч и успешных проверок значительно отличается, а количество событий превышает 50, IP блокируется, несмотря на cookies.

Чтобы усложнить жизнь ботам, я подключил Яндекс.Капчу для начальной проверки (различные ребусы). Для последующих проверок используется Cloudflare Turnstile, который работает быстро и не раздражает, в отличие от ReCaptcha.

Для удобства сделал UI админ панель, с топ IP, статистика я режиме реального времени, список IP которые "на проверке", заблокированные IP. Сортировка по количеству блокировки, каптчи, фильтр: за 3 часа, за 6 часов и тд., фильтр по ОС, метка "IP просмотрено".

Раз в день захожу, чекаю топы, вижу свежие и подозрительные IP, одним кликом выскакивает инфа о подозреваемом, есть кнопки одним кликом блокировать навсегда, разблокировать, добавить в белый список, найти пул IP , добавить провайдера в чёрный список, иконки если это: прокси, VPN, дата центр, абузер и т.д.

Взял самое нужное из CF Events, упростил, убрал свалку инфы и т.д. Сделал для себя.

Ещё можно придумать авто бан сразу по шаблону запросов, но боюсь забанить не тех, поэтому авто бан по шаблону запросов работает после проверки IP на чистоту. Также думал подключить несколько этапов каптчи, сперва Яндекс каптча один раз , а потом Turnstile , далее если все ещё идёт флуд то Recaptcha , или Яндекс Каптча с максимальным уровнем сложности. Но опять же легко забанить мобильный трафик .  

Получилось что-то вроде продвинутого Rate Limits с жёсткими правилами бана. Лучше WAF правил, но хуже машинного обучение Enterprise тарифа Cloudflare.

Крысы стали медленнее тырить контент, с первоначальных сканирования сайта каждые пару минут до сутки , а то и вовсе прекратили поскольку невыгодно брать мобильный прокси с ротацией. 

Лучший хостер с адекватными сис. админами: https://clck.ru/35zGfN
damn-doubleclick
На сайте с 10.09.2021
Offline
57
#14
Aisamiery #:

Я использую CDN от Selectel, много точек присутствия, цена вопроса 500р за первые 800Гб исходящего трафика, у меня при 2Тб выходит примерно ~1200р, но я считаю проект достаточно большой. Точек по РФ много достаточно.

Да, если уместиться в лимит то можно взять G Core Labs с подпиской за 30+ долларов в месяц, гораздо больше точек чем Selectel, и плюшек тоже. Почти аналог Cloudflare, но лимит жёсткий, только маленьким сайтам подоходит. 

К тому же, Selectel вроде традиционный CDN, как mail ru, CDNnow и прочие требующие указывать их домен для статики, и не доставляют динамический контент, разве нет? 

Mik Foxi
На сайте с 02.03.2011
Offline
1176
#15
кому нужен локальный свой собственный клаудфлар - гуглите waf на базе openresty. есть скрипты и даже панельки. это больше про антиддос, а не "скрипты записывающие в базу". 
Антибот, антиспам, веб файрвол, защита от накрутки поведенческих: https://antibot.cloud/ Форум на замену серчу: https://foxi.biz/
Smuel
На сайте с 09.01.2021
Offline
45
#16
damn-doubleclick #:
Довольно простой скрипт

Огонь, спасибо за такое подробное объяснение. Учитывая актуальность проблемы - ты вполне мог бы продавать этот скрипт) Кстати, скрипт на все серваки подойдет? Я юзаю nginx.
И еще вопрос - а айпишник сервера как-то скрываешь?

Smuel
На сайте с 09.01.2021
Offline
45
#17
Aisamiery #:

Вот и у меня такой вопрос, зачем? Хоститесь в РФ для проектов на РФ, в США для проектов на США и так далее. Я понимаю там когда есть сложность, например мы делали проект под ОАЭ, на тот момент оказалось сложно захоститься в самих Эмиратах, но уж в остальном то странно да.

Ну я, например, хостюсь в hetzner сугубо из-за цены. Пробовал года 4-5 назад Selectel, но цена была раза в 2 выше. Сейчас получается блочат hetzner. Но так как у меня dns настроены на Cloudflare, который тоже получается через раз работает. То сейчас вопрос стоит следующим образом, в рамках данного топика:
1) Адекватный по цене выделенный сервер РФ (либо не блочащиеся сервера с хорошей ценой за границей + cdn от selectel для быстрой доставки контента на территории РФ)
2) Сокрытие реального ip, так как сайты разные. Есть сдл, есть доры...
3) WAF блокировка, так как отсечение ненужных ботов очень сильно снижает расходы на сервера. 

br.almighty
На сайте с 13.07.2021
Online
92
#18
Smuel #:

Огонь, спасибо за такое подробное объяснение. Учитывая актуальность проблемы - ты вполне мог бы продавать этот скрипт) Кстати, скрипт на все серваки подойдет? Я юзаю nginx.

Зачем продавать, когда по любому должны быть уже существующие бесплатные решения с открытыми исходниками?

Вот как пример: https://github.com/ADD-SP/ngx_waf

Или вот: https://github.com/search?q=nginx+waf&type=repositories

То же самое со свежими обновами: https://github.com/search?q=nginx+waf&type=repositories&s=updated&o=desc

И это я ещё не особо искал. Если проверять будете, результаты напишите. Хотя бы в личку. Буду благодарен.

Ничего покупать не надо. Понравилось - оставил, не понравилось - переходишь к следующему.

Открытые проекты ценятся больше, потому что они проверены кучей людей, а продажа и покупка скриптов уже давно в прошлом. Это только для не программистов осталось.

GitHub - ADD-SP/ngx_waf: Handy, High performance, ModSecurity compatible Nginx firewall module & 方便、高性能、兼容 ModSecurity 的 Nginx 防火墙模块
GitHub - ADD-SP/ngx_waf: Handy, High performance, ModSecurity compatible Nginx firewall module & 方便、高性能、兼容 ModSecurity 的 Nginx 防火墙模块
  • ADD-SP
  • github.com
Handy, High performance Nginx firewall module. Basic protection: such as black and white list of IPs or IP range, uri black and white list, and request body black list, etc. Easy to use: configuration files and rule files are easy to write and readable. High performance: Efficient algorithms and caching. Advanced protection: ModSecurity...
dakter
На сайте с 08.02.2012
Offline
181
#19
br.almighty #:
Если проверять будете, результаты напишите.

То есть топик создал ты, замену ищешь ты, а проверять желательно другим? Возьми да попробуй, результат напиши.

br.almighty
На сайте с 13.07.2021
Online
92
#20
dakter #:

То есть топик создал ты, замену ищешь ты, а проверять желательно другим? Возьми да попробуй, результат напиши.

Наверное, стоило пройти мимо, если что-то не устраивает, вместо изрыганий ненависти?

Топик создан не для жлобов, типа вас. Я, между прочим, не вокруг да около говорю, а показываю существующие инструменты, вместо описания функций секретных скриптов.

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

Не нравится что-то - пройдите мимо. Это так сложно? Проще написать что-то негативное?

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