В этом руководстве разберёмся зачем нужен Cloudflare, как подключить его к сайту и как пользоваться основными функциями сервиса: управлять DNS-записями, установить SSL-сертификат, защититься от DDoS-атак, показывать всем посетителям CAPTCHA или заблокировать доступ к сайту на основе параметров вроде IP-адреса или геолокации.

Но сначала кратко введём в курс дела, если вы не знаете, как работает Cloudflare и что это вообще такое.

Что такое Cloudflare

Cloudflare — это сеть серверов по всему миру, к которой люди подключают свои сайты, чтобы увеличить скорость их загрузки и защитить от DDoS-атак. Также при помощи этого сервиса можно управлять DNS-записями на домене и перевести сайт на HTTPS.

У Cloudflare есть бесплатный тариф и несколько платных. В зависимости от тарифа уровень защиты и возможности по ускорению сайта будут отличаться. В этом руководстве рассмотрим только то, что есть в бесплатном тарифе.

Тарифы Cloudflare

Как работает CloudFlare

Как мы уже выяснили, две основных функции Cloudflare — это ускорить время загрузки сайта и защитить его от DDoS-атак. Кратко расскажем, как эти функции реализованы.

Ускорение загрузки сайта происходит за счёт технологии CDN. Если опустить технические подробности, то у Cloudflare есть серверы по всему миру, на которые компания кэширует статические файлы с вашего сайта — картинки, CSS, Javascript — а потом раздаёт их с серверов, которые ближе к посетителям. Это снижает нагрузку на хостинг и расстояние, которое преодолевают данные.

Защита от DDoS-атак работает за счёт того, что весь входящий трафик сначала проходит через Клаудфлер, как через фильтр. Компания анализирует входящий трафик, блокирует подозрительные запросы, а обычные отправляет к вам на сайт.

DDoS protection by Cloudflare: принцип работы

Как подключить Cloudflare к сайту

На сайте Cloudflare нажмите кнопку «Sign up» в правом верхнем углу:

Cloudflare hosting — главная страница сайта сервиса

Укажите электронную почту в качестве логина и придумайте надёжный пароль: минимум 10 символов, хотя бы одна цифра и специальный символ. После этого нажмите «Create Account»:

Hosting Cloudflare — страница регистрации аккаунта

Введите домен, который собираетесь привязать к Cloudflare, и нажмите «Add site»:

Cloudflare: добавить домен

Выберите тарифный план — в нашем случае «Free» — и нажмите «Continue»:

Тарифы Cloudflare

Запустится процесс сканирования DNS-зоны вашего домена. Cloudflare найдёт DNS-записи для домена и всех его поддоменов, а потом создаст их у себя:

Cloudflare free dns — страница с отсканированными DNS-записями

Обычно сервис не пропускает записи, но если какая-то из них пропала, добавьте её вручную. Если всё в порядке, нажмите внизу кнопку «Continue»:

Бесплатный хостинг DNS от Cloudflare — страница с отсканированными DNS-записями домена

На следующей странице будут DNS-серверы для направления домена на Cloudflare. Установите их для вашего домена на сайте компании, у которой регистрировали домен.

Cloudflare DNS — неймсерверы, на которые нужно направить домен

Когда домен будет направлен на Cloudflare, вы увидите в верхней части панели управления разделы для работы с разными сервисами Cloudflare. В этом руководства мы рассмотрим только самые популярные из них: Caching, DNS, SSL/TLS, Firewall и Page Rules.

Обзор функций Cloudflare

Если подключаете сайт к Cloudflare во время DDoS-атаки

Скорее всего, IP-адрес вашего сервера уже известен и его просто будут атаковать напрямую. Если это так, стоит поменять IP-адрес. Уточните этот момент с вашим провайдером.

Отдельный момент — после переключения DNS-серверов на домене следующие несколько дней часть трафика всё равно будет идти через старые DNS-серверы, а значит защита Cloudflare будет работать только для половины запросов.

Как очистить кэш

Кэширование на Cloudflare включено по умолчанию. Поэтому чистить кэш нужно каждый раз, когда вы что-то меняете на сайте. Иначе после публикации изменений посетители ещё какое-то время будут видеть старый контент.

Для этого откройте раздел «Caching» и перейдите на вкладку «Configuration». Дальше в первом же блоке нажмите «Custom Purge», чтобы очистить кэш выборочно, или «Purge Everything», чтобы очистить весь кэш на серверах Cloudflare.

Как очистить кэш Cloudflare

Как работать с DNS-записями

Перейдите в раздел «DNS». Вы увидите таблицу со всеми DNS-записями в зоне вашего домена на серверах Cloudflare.

Чтобы добавить новую запись, нажмите «+Add record» над таблицей со всеми записями:

Настройка DNS на стороне Cloudflare

Для примера создадим А-запись для поддомена «blog». Выберите тип DNS-записи «A», заполните остальные поля и нажмите «Save»:

  • Name — хост на домене, для которого создаётся запись. Если создаёте запись для основного домена, впишите сюда @. А если для поддомена, то впишите только сам поддомен, без домена. Например, чтобы создать запись для поддомена www.vashdomen.com, сюда нужно вписать только www.
  • IPv4 address — IP-адрес, к которому нужно привязать хост. Для других типов DNS-записей это поле будет называться по-другому, но в нём всегда будет подразумеваться целевое назначение записи — какой-то текст, домен или URL.
  • TTL — время жизни DNS-записи в секундах на роутере посетителя сайта. Чем больше это число, тем дольше человеку придётся подождать, прежде чем он узнает, что вы изменили DNS-запись. Изменить этот параметр получится, только если отключить для записи прокси Cloudflare. В противном случае TTL будет в значении Auto.
  • Proxy status — статус прокси Cloudflare. Статус «Proxied» означает, что для этой DNS-записи все запросы сначала будут проходить через Cloudflare. Для записи будут работать все функции сервиса. Статус «DNS Only» означает, что запросы будут идти в обход Cloudflare. Для записи не будут работать основные функции сервиса: CDN, SSL, защита от DDoS.
Как добавить поддомен на Cloudflare

Чтобы изменить или удалить какую-то запись, нажмите в строке с ней кнопку «Edit». После этого поля со значениями записи станут доступны для редактирования, а в левом нижнем углу появится кнопка «Delete».

Cloudflare — как удалить DNS-запись

Как настроить HTTPS

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

Чтобы увидеть статус защиты на каждом из этапов, перейдите в раздел SSL/TLS. В верхней части страницы вы увидите схему и четыре настройки, которые нужно выбрать в зависимости от того, установлен у вас на хостинге SSL-сертификат или нет.

Правильная настройка Cloudflare SSL

Соединение на пути посетителя к Cloudflare компания защитит сама при помощи собственного бесплатного SSL-сертификата Universal. Он начнёт работать автоматически, как только вы добавите домен в аккаунт. А вот чтобы защитить соединение на пути от Cloudflare к вашему сайту понадобится установить SSL-сертификат на хостинг.

Если у вас на хостинге уже есть SSL-сертификат, выберите режим «Full (Strict)». А если ещё нет, выберите режим «Flexible». Но в этом случае соединение не будет на 100% безопасным. Люди будут видеть у себя в браузере HTTPS при переходе на ваш сайт, хотя Cloudflare будет передавать данные на сайт в незашифрованном виде, а значит мошенники могут притвориться вашим сервером и перехватить данные. Используйте режим «Flexible» только как временную меру или в случае, если у вас нет возможности установить SSL-сертификат на хостинге.

Не используйте режим «Full» или «Full (Strict)», если у вас на хостинге не установлен SSL-сертификат. Иначе при переходе на ваш сайт посетители будут видеть ошибку 525 или 526 соответственно. Выглядят они одинаково, разница только в коде ошибки:

Cloudflare: Error 526 — Invalid SSL certificate

После того как выберете подходящий режим, специально введите домен вашего сайта в браузере с HTTP. Если сайт всё равно откроется по HTTPS, всё хорошо. Если откроется HTTP версия, значит ваш сайт доступен и по HTTP и по HTTPS. Чтобы это исправить, перейдите в верхней части раздела на вкладку «Edge Certificates» и включите опцию «Always Use HTTPS».

Настройка Cloudflare: опция «Always use HTTPS»

Как защитить сайт от DDoS-атаки

Даже просто подключив сайт к Cloudflare, вы уже защищаете его от DDoS-атак. Компания скрывает IP-адрес сервера, на котором расположен ваш сайт, заставляя хакеров атаковать её серверы вместо вашего. Дальше Cloudflare блокирует подозрительный трафик, а нормальный пропускает дальше.

Кэширование тоже помогает при небольших атаках, поскольку снижает нагрузку на ваш хостинг. Но всё равно во время атаки желательно скорректировать настройки в вашем аккаунте Cloudflare, чтобы дополнительно смягчить атаку. В этом разделе поговорим о том, что именно можно сделать.

Но бесплатный тариф Cloudflare защитит не от всех атак, а только от самых распространённых. Если разбираетесь в их разновидностях, то речь об атаках 3, 4 и 7 уровней. Для большинства сайтов этого будет достаточно, потому что не всех атакуют по-крупному, но серьёзная защита от DDoS начинается именно с платных тарифов Cloudflare.

Включите режим «I’m Under Attack!»

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

Стандартное межстраничное уведомление «DDoS protection by Cloudflare»

Чтобы включить этот режим, перейдите в раздел «Firewall», откройте вкладку «Settings» и выберите «I’m Under Attack!» из выпадающего списка в блоке «Security Level»:

Как включить режим anti-ddos Cloudflare

Проверенный посетитель получит доступ к вашему сайту не навсегда. По умолчанию это 30 минут, но вы можете указать другие временные рамки на этой же вкладке в блоке «Challenge Passage»:

Настройка Cloudflare: опция «Challenge Passage»

Не забудьте выключить этот режим, когда атака закончится. Нет смысла просто так усложнять посетителям доступ к сайту. Если планировали сделать это в качестве превентивной меры, лучше выберите не «I’m Under Attack!», а «High». Тогда Cloudflare тоже будет показывать межстраничное уведомление, но не всем посетителям, а только тем, с чьих IP-адресов было зафиксировано сомнительное поведение в течение последних 14 дней.

Настройте правила доступа

С их помощью вы можете заставить посетителей проходить CAPTCHA при переходе на сайт или вообще заблокировать к нему доступ на основе региона, типа запроса, IP-адреса, диапазона IP-адресов или User Agent.

В бесплатном тарифе Cloudflare вы сможете создать всего пять правил. Для этого перейдите в разделе «Firewall» на вкладку «Firewall Rules» и нажмите «Create a Firewall rule».

Предположим, вы выяснили IP-адреса, с которых идёт атака. Показываем, как создать правило, которое заблокирует доступ к сайту для одного IP-адреса или диапазона адресов.

Настройка Cloudflare: как создать правило для файервола

Первое поле — «Rule name» — это название правила. Для нашего примера подойдет «Блокировка трафика»:

Настройка Cloudflare: поле названием правила для файервола

Дальше будут поля с деталями правила:

  • Field — параметр, на основе которого будет фильтроваться трафик. В нашем случае это «IP address».
  • Operator — условие, при котором правило будет срабатывать. В нашем случае «equals», то есть «равно».
  • Value — значение параметра из первого поля. В нашем случае это IP-адрес, для которого нужно заблокировать доступ.

Кнопки «And» и «Or» справа нужны, чтобы указать несколько условий для одного правила. «And» подразумевает, что правило сработает, если запрос соответствует обоим условиям, а «Or» — что правило сработает, если запрос соответствует хотя бы одному условию.

Кроме одного IP-адреса мы дополнительно указываем диапазон IP-адресов, поэтому нажимаем «And» и в новой строке вписываем такие детали:

  • Field — «IP address».
  • Operator — «is in», то есть «входит в».
  • Value — диапазон IP-адресов в формате «IP-адрес/префикс CIDR». В нашем примере пишем «2.16.64.0/24». Это значит, что первые три октета — «2.16.64» — не будут меняться, а последний будет включать в себя все значения от 1 до 254. Если прописать «2.16.64.0/25», то первые три октета тоже не будут меняться, а последний будет включать в себя значения от 1 до 126.

    Таблица префиксов и калькулятор диапазонов
Настройка Cloudflare: поля с параметрами правила для файервола

Под полями с деталями правила будет поле с действием, которое Cloudflare будет применять, если запрос соответствует условиям из правила:

  • Block — заблокировать доступ.
  • Challenge (CAPTCHA) — показывать капчу. Используется сервис Google reCAPTCHA.
  • JS Challenge — показывать межстраничное уведомление, как при включенной опции «I’m Under Attack!».
  • Bypass — отключить проверки со стороны Cloudflare.
  • Allow — разрешить полный доступ.

В нашем примере мы хотим заблокировать трафик, поэтому выбираем «Block».

Настройка Cloudflare: поле с действием для правила файервола

После создания правила остаётся нажать кнопку «Deploy» внизу страницы. Изменения вступят в силу немедленно.

Как улучшить работу отдельных страниц

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

В бесплатном тарифе Cloudflare вы сможете создать всего три таких правила. Сначала расскажем, как в общем устроен процесс. А потом рассмотрим несколько конкретных правил, которые могли бы вам пригодиться.

Перейдите в раздел «Page Rules» и в первом же блоке нажмите кнопку «Create Page Rule»:

Настройка Cloudflare: раздел «Page rules»

На следующей странице вы увидите два блока с полями:

  • If the URL matches — URL, для которого будет работать правило. При необходимости используйте звёздочку (*) в любом сегменте URL-адреса, чтобы превратить URL в шаблон.

    Например, шаблон *.vashdomen.com/* подразумевает, что правило будет работать для всех возможных страниц сайта: и для vashdomen.com, и для www.vashdomen.com/blog, и для shop.vashdomen.com/odezhda/muzhskoe.
  • Then the settings are — настройка, которая должна срабатывать для указанного URL или шаблона. Если хотите, чтобы для одного URL срабатывало сразу несколько настроек, добавьте их при помощи кнопки «+Add a Setting».

В конце сохраните правило, нажав кнопку «Save and Deploy»:

Cloudflare настройка: поля с параметрами правила для отдельной страницы

Правила применяются в зависимости от того, в каком порядке они расположены. Если хотите изменить их очерёдность, просто перетащите нужное правило вверх или вниз по списку при помощи значка слева:

Настройка клаудфлер: список всех правил для отдельных страниц

Мы показали, как в общем устроен процесс. Теперь рассмотрим несколько конкретных правил.

Дополнительная защита для страницы входа в аккаунт

По умолчанию Cloudflare устанавливает на сайте уровень защиты Medium. Но для некоторых страниц — например, страницы входа в панель управления сайтом или в аккаунт клиента — можно установить более высокие требования, потому что именно их часто атакуют хакеры. Для этого создайте правило с такими условиями:

  • В блоке If the URL matches впишите URL админки вашего сайта. Например, для WordPress это обычно vashdomen.com/wp-admin/*;
  • В блоке Then the settings are выберите настройку Security Level – High. Так вы повысите вероятность, что Cloudflare заблокирует доступ, если кто-то будет себя подозрительно вести. Например, долго безуспешно ломиться в аккаунт.
  • Дополнительно нажмите + Add a Setting и выберите настройку Cache Level – Bypass. Так вы отключите кэширование для этих страниц. На страницах входа в аккаунт лучше обойтись без него.
Cloudflare настройка: правило для усиления безопасности страницы логина

Кэширование для контента, который редко будет меняться

Часть контента на вашем сайте, например картинки, не будет часто меняться. Правильно настроив кэширование для такого контента, вы снизите объём используемого трафика и нагрузку на сервер. Создайте правило с такими условиями:

  • В блоке If the URL matches впишите URL-адрес к папке, где хранятся изображения и другие мультимедийные файлы.
  • В блоке Then the settings are выберите Cache Level — Cache Everything, чтобы Cloudflare кэшировал всё содержимое этой папки без исключения.
  • Нажмите + Add a Setting и добавьте настройку Browser Cache TTL — a day, чтобы кэш в браузерах посетителей обновлялся раз в день.
  • Нажмите + Add a Setting ещё раз и добавьте настройку Edge Cache TTL — 7 days, чтобы Cloudflare проверял файлы на стороне хостинга и обновлял кэш раз в 7 дней, если это нужно.
Cloudflare настройка: правило для продвинутого кэширования для отдельных страниц

Редирект сайта с www на без www

Обычно на одну и ту же страницу на сайте можно зайти по двум адресам: https://www.vashdomen.com и https://vashdomen.com. Поисковые системы не понимают, что это одна и та же страница, поэтому две версии будут конкурировать за место в результатах поиска.

Будет выгоднее настроить 301 редирект с одной версии на другую. Тогда позиции одной версии передадутся другой и сайт в итоге может даже улучшить свои позиции в выдаче. На жаргоне SEO-специалистов это действие называется «склеить домен».

Вот как сделать основной версию без www:

  • Впишите www.vashdomen.com/* в блоке If the URL matches.
  • В блоке Then the settings are используйте Forwarding URL — 301 – Permanent redirect, указав полный путь к версии без www — https://vashdomen.com/$1.
Cloudflare настройка: правило для 301 редиректа с www на без www

Как удалить домен из Cloudflare

Перейдите в раздел «Overview» и в правом нижнем углу этой страницы нажмите «Remove Site from Cloudflare» в разделе «Advanced Actions», после чего подтвердите свои действия:

Как удалить сайт из Cloudflare

Если же вы просто хотите временно приостановить работу Cloudflare, выберите опцию, которая стоит чуть выше — «Pause Cloudflare on Site». Тогда домен продолжит использовать DNS-хостинг Cloudflare, но запросы будут идти сразу к вашему хостинг-провайдеру. Кэширование, SSL и защита от DDoS-атак перестанут работать.

Как отключить Cloudflare