Настройка Firewall от CloudFlare уровень БОГ

В этой статье мы поделимся опытом настройки Firewall от CloudFlare так, что это срежет вообще любые попытки навредить сайту, но при этом не помешает правильной индексации и работе любых сервисов. Мы уже упоминали подключение и использование CloudFlare в статье про получение бесплатного SSL сертификата, не будем тут дублировать инструкцию по подключению и сразу перейдем к настройке.

Настройка CloudFlare Firewall

Переходим в раздел Firewall — Firewall Rules и добавляем новые правила: В итоге у нас будут правила такого плана: Сейчас разберемся как нам это получить, что это дает и почему именно так.

Полученный результат

  • Неуязвимость к DDOS атакам
  • Полное отсутствие спама
  • Сайт полностью функционален
  • Защита от перебора паролей
  • Снижение нагрузки на сервер
  • Защита от взлома

Разрешить добрых ботов

GoogleBot, Ahrefs и другие хорошие боты не должны испытывать проблем с доступом к сайту так что первым пунктом разрешаем им всем доступ без вопросов: Правило:
(cf.client.bot) or (http.request.uri.path contains «/wp-cron.php»)
Примечание: Если сайт сделан на WordPress и испытывает после настройки Firewall проблемы с автоматическим обновлением то стоит еще разрешить доступ к /wp-cron.php для решения проблемы. Настройку дописывать нужно только если сайт реально не обновляется автоматически, иногда обновляется без проблем и тогда это исключение не нужно.

Блокировать обращения к HTTP

То есть НЕ к HTTPS а к HTTP, то есть к старому незащищенному протоколу. Кто туда обращается, если сайт уже несколько лет как перешел на HTTPS и SSL? Непонятно, сделаем им дополнительную проверку. Правило:
(not ssl)

Проверяем обращения к старым версиям HTTP

Все современные браузеры обращаются по современным протоколам, старые используют в основном всякие парсеры и спам-боты. Потому смело их запрещаем: Правило:
(http.request.version in {«HTTP/1.0» «HTTP/1.1» «HTTP/1.2»})

Проверяем обращения из нецелевой страны

Если сайт, например, на русском языке и его трафик это Россия, Украина и Беларусь, а остальные страны составляют незначительный процент трафика то может быть уместной проверка на уровне CloudFlare браузера такого трафика. Это не блокировка, просто на 1-2 секунды человек видит информацию о проверке и потом его пропускает. А ботов — нет. Правило:
(not ip.geoip.country in {«UA» «RU»})

Защищаем от перебора паролей

Делаем проверку всех посещений страницы авторизации, это защищает нас от массового перебора паролей. Правило:
(http.request.uri.path contains «/wp-login.php»)
Только адрес страницы авторизации нужно заменить на тот, который используется на защищаемом сайте.