Каждый день на сайт заходят тысячи поисковых роботов/ботов, и очень немногие из них помогают. Некоторые из них вообще являются продуктами злоумышленных целей ботами или спамом.
Откуда можно узнать, сколько разных ботов посещают ваши веб-сайты?
На самом деле, однозначного ответа нет. Для этого необходимо просмотреть файл 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 и других сетевых уязвимостей.