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

Как использовать Cloudflare для блокировки ботов
Откуда можно узнать, сколько разных ботов посещают ваши веб-сайты?
На самом деле, однозначного ответа нет. Для этого необходимо просмотреть файл access.log веб-сервера и найти столбец User-Agent. Допустим, вы хотите перечислить все боты, кроме Googlebot, тогда вы можете выполнить следующую команду на вашем веб-сервере, где существует файл access.log.
grep bot access.log |grep -v Googlebot
Вас тоже удивил результат? Вот, что выдал тот же запрос на моем сервере:
root@gf-prod:nginx# grep bot access.log |grep -v Googlebot | wc -l 616834 root@gf-prod:nginx#
Прежде чем блокировать что-либо, необходимо просмотреть их и убедиться, что вы не блокируете то, что используется вашим приложением. Вообще, есть много способов блокировки ботов, но я всегда предпочитаю блокировать их на границе.
Причина проста - бесполезные запросы вообще не должны попадать и обрабатываться веб-сервером.
А теперь, давайте узнаем, как блокировать ботов, которые вам не нужны, с помощью брандмауэра Cloudflare.
- Заходим на панель управления Cloudflare;
- Переходим на вкладку Firewall, затем - правила firewall и нажимаем на кнопку создать правило firewall.

- Вводим название правила;
- В качестве фильтра выбираем User Agent, оператор - contains, а в качестве значения - название бота, которое нужно заблокировать;
- Чтобы добавить несколько критериев в одно правило используйте оператор OR.

Примечание: боты, указаны в целях демонстрации, они не обязательно вредоносные.
- Затем в качестве действия выбираем Block и нажимаем Deploy;
- Если умеете работать с выражениями, то тоже самое можете сделать кликнув на ссылку Edit expression. Сразу после применения, можно будет увидеть созданное правило. Чтобы данное правило применялось к трафику, переключатель состояния должен быть ON.
Легко, не так ли?
Что еще можно сделать, экспериментируя с правилами межсетевого экрана?
Для повышения безопасности можно применять указанные ниже критерии блокировки:
- Блокировать если запрос идет с конкретного ASN или IP адреса;
- По соответствию ключевым словам cookie, referrer, X-Forwarder-for;
- Блокировка запросов из конкретной страны;
- Отключение нежелательных HTTP-методов в роде
PUT
,DELETE
,OPTIONS
,PURGE
и т.д.
И другие подобные опции. Все это можно выполнить как с помощью графического интерфейса, так и редактированием выражений. Изменения применяются почти сразу.
Заключение
Правила брандмауэра Cloudflare - отличный способ без простоев повысить защиту веб-приложений на границе сети. Если еще не применяете данное решение, вы также можете рассмотреть возможность использования Cloud WAF для повышения безопасности приложений и защиты от DDoS и других сетевых уязвимостей.