В этом руководстве разберёмся зачем нужен Cloudflare, как подключить его к сайту и как пользоваться основными функциями сервиса: управлять DNS-записями, установить SSL-сертификат, защититься от DDoS-атак, показывать всем посетителям CAPTCHA или заблокировать доступ к сайту на основе параметров вроде IP-адреса или геолокации.
Но сначала кратко введём в курс дела, если вы не знаете, как работает Cloudflare и что это вообще такое.
Что внутри
- Что такое Cloudflare
- Как работает Cloudflare
- Как подключить Cloudflare к сайту
- Как работать с DNS-записями
- Как настроить HTTPS
- Как защитить сайт от DDoS-атак
- Как очистить кэш
- Как улучшить работу отдельных страниц
- Как удалить сайт из Cloudflare
Что такое Cloudflare
Cloudflare — это сеть серверов по всему миру, к которой люди подключают свои сайты, чтобы увеличить скорость их загрузки и защитить от DDoS-атак. Также при помощи этого сервиса можно управлять DNS-записями на домене и перевести сайт на HTTPS.
У Cloudflare есть бесплатный тариф и несколько платных. В зависимости от тарифа уровень защиты и возможности по ускорению сайта будут отличаться. В этом руководстве рассмотрим только то, что есть в бесплатном тарифе.
Как работает CloudFlare
Как мы уже выяснили, две основных функции Cloudflare — это ускорить время загрузки сайта и защитить его от DDoS-атак. Кратко расскажем, как эти функции реализованы.
Ускорение загрузки сайта происходит за счёт технологии CDN. Если опустить технические подробности, то у Cloudflare есть серверы по всему миру, на которые компания кэширует статические файлы с вашего сайта — картинки, CSS, Javascript — а потом раздаёт их с серверов, которые ближе к посетителям. Это снижает нагрузку на хостинг и расстояние, которое преодолевают данные.
Защита от DDoS-атак работает за счёт того, что весь входящий трафик сначала проходит через Клаудфлер, как через фильтр. Компания анализирует входящий трафик, блокирует подозрительные запросы, а обычные отправляет к вам на сайт.
Как подключить Cloudflare к сайту
На сайте Cloudflare нажмите кнопку «Start for free» на титульном баннере. Если у вас баннер выглядит по-другому, сработают также кнопки «Sign up» или «Log in» в правом верхнем углу.
Создайте аккаунт с вашей электронной почтой в качестве логина и надёжным паролем. Требования к паролю: минимум 8 символов, 1 цифра, 1 специальный символ (например, $, !, @, %, &), без пробела в начале или конце.
Откроется домашняя страница вашего аккаунта. Нажмите на верхней панели кнопку «Add» и выберите из выпадающего списка вариант «Existing domain».
На следующем экране введите ваш домен без www и без протокола (https://). Чуть ниже выберите один из вариантов:
- Quick scan for DNS records — просканировать DNS-записи;
- Manually enter DNS records — вручную ввести DNS-записи;
- Upload a DNS zone file — загрузить файл с DNS-зоной.
Первый вариант удобен тем, что Cloudflare сам найдёт DNS-записи на вашем домене и создаст их на сервисе. Это сэкономит время. Но всё равно лучше перепроверить, все ли записи нашлись. Возможно, какие-то из них не найдутся и надо будет создать их вручную.
Если на предыдущем шаге вы добавили домен при помощи строки в центре экрана, а не через выпадающий список, возможности просканировать DNS-записи не будет. Придётся создавать их самому.
Дальше выберите тарифный план. Бесплатный будет в самом низу страницы. Кликните по нему, чтобы он выделился синим, затем нажмите «Continue».
Следующая страница — раздел «Overview» в пункте управления доменом. Здесь отображается общая информация о работе сервисов Cloudflare. На скриншоте ниже выделен статус подключения Cloudflare для домена. В нашем примере он «неактивный» (vashdomen.tk is not active on Cloudflare yet). Это нормально для только что добавленного домена.
Подождите немного, пока запустится сканер DNS-записей. Это произойдёт автоматически, ничего нажимать не нужно. Дождитесь, пока сканер завершит работу и найдёт все записи, которые сможет. Экран с работающим сканером будет выглядеть вот так:
В результате вы увидите таблицу со всеми DNS-записями, которые Cloudflare смог найти. Лучше проверьте на старых неймсерверах, все ли записи на месте. Вдруг что, прямо здесь можно добавить или отредактировать запись. Когда убедитесь, что всё в порядке, нажмите «Continue to activation».
На следующем экране вы снова увидите раздел «Overview». Прокрутите его вниз и найдите шаг №3 — Update your nameservers. Там будут указаны неймсерверы Cloudflare, которые нужно указать в настройках вашего домена. Это делается на стороне компании, где вы регистрировали домен.
Если регистрировали домен у нас, чтобы изменить DNS-серверы, зайдите в вашу учетную запись и перейдите в раздел «Мои домены». Затем нажмите «Детали» в строке с нужным доменом и найдите раздел «NS серверы». Впишите неймсерверы, которые вам выдал Cloudflare, и сохраните изменения.
После смены неймсерверов остаётся только ждать, пока настройки вступят в силу. Это может занять до 24 часов. Когда процесс завершится и сервисы Cloudflare активируются для домена, вы получите уведомление об этом по электронной почте, а в разделе «Overview» появится новый статус.
Кратко резюмируем, что вы только что сделали: добавили домен в аккаунт Cloudflare, предварительно создали его DNS-записи на неймсерверах компании, затем подключили к ним домен. Всё это было нужно, чтобы минимизировать перебои в работе сайта, которые могут возникать при переключении неймсерверов.
Дальше рассмотрим основной функционал сервиса: как работать с DNS-записями, включить HTTPs, защитить сайт от DDoS-атак, очистить кэш, создать редирект или особые правила для работу отдельных страниц сайта.
Как работать с DNS-записями
Перейдите в раздел «DNS». Вы увидите таблицу со всеми DNS-записями в зоне вашего домена на серверах Cloudflare.
Чтобы добавить новую запись, нажмите «+Add record» над таблицей со всеми записями:
Для примера создадим А-запись для поддомена «blog». Выберите тип DNS-записи «A», заполните остальные поля и нажмите «Save»:
- Name — хост на домене, для которого создаётся запись. Если создаёте запись для основного домена, впишите сюда @. А если для поддомена, то впишите только сам поддомен, без домена. Например, чтобы создать запись для поддомена www.vashdomen.com, сюда нужно вписать только www.
- IPv4 address — IP-адрес, к которому нужно привязать хост. Для других типов DNS-записей это поле будет называться по-другому, но в нём всегда будет подразумеваться целевое назначение записи — какой-то текст, домен или URL.
- Proxy status — статус прокси Cloudflare. Статус «Proxied» означает, что для этой DNS-записи все запросы сначала будут проходить через Cloudflare. Для записи будут работать все функции сервиса. Статус «DNS Only» означает, что запросы будут идти в обход Cloudflare. Для записи не будут работать основные функции сервиса: CDN, SSL, защита от DDoS.
- TTL — время жизни DNS-записи в секундах на роутере посетителя сайта. Чем больше это число, тем дольше человеку придётся подождать, прежде чем он узнает, что вы изменили DNS-запись. Изменить этот параметр получится, только если отключить для записи прокси Cloudflare. В противном случае TTL будет в значении Auto.
Чтобы изменить или удалить какую-то запись, нажмите в строке с ней кнопку «Edit». После этого поля со значениями записи станут доступны для редактирования, а в левом нижнем углу появится кнопка «Delete».
Как настроить HTTPS
Когда вы подключаете домен к Cloudflare, сервис становится промежуточным этапом между посетителем и сайтом. Соединение на пути от посетителя до Cloudflare компания защитит автоматически при помощи своего бесплатного сертификата SSL Universal. А вот чтобы защитить соединение на пути от Cloudflare до сайта, вам понадобится установить на хостинге ещё один SSL-сертификат.
Как установить SSL-сертификат Let’s Encrypt
Посмотреть статус шифрования можно в разделе SSL/TLS. В нашем примере видно, что соединение на этапе от посетителя до Cloudflare защищено (стоит замочек), а на этапе от Cloudflare до хостинга — нет. Чтобы изменить режим, нажмите рядом со схемой синюю кнопку «Configure».
На следующей странице нажмите «Select» в блоке «Custom SSL/TLS».
Если у вас на хостинге уже есть SSL-сертификат, выберите режим «Full (Strict)». А если ещё нет, выберите режим «Flexible». Но в этом случае соединение не будет на 100% безопасным. Люди будут видеть у себя в браузере HTTPS при переходе на ваш сайт, хотя Cloudflare будет передавать данные на сайт в незашифрованном виде, а значит мошенники могут притвориться вашим сервером и перехватить данные. Используйте режим «Flexible» только как временную меру или в случае, если у вас нет возможности установить SSL-сертификат на хостинге.
Не используйте режим «Full» или «Full (Strict)», если у вас на хостинге не установлен SSL-сертификат. Иначе при переходе на ваш сайт посетители будут видеть ошибку 525 или 526 соответственно. Выглядят они одинаково, разница только в коде ошибки:
После того как выберете подходящий режим, специально введите домен вашего сайта в браузере с HTTP. Если сайт всё равно откроется по HTTPS, всё хорошо. Если откроется HTTP версия, значит ваш сайт доступен и по HTTP и по HTTPS. Чтобы это исправить, перейдите в разделе «SSL/TLS» в подраздел «Edge Certificates» и включите опцию «Always Use HTTPS».
Как защитить сайт от DDoS-атаки
Даже просто подключив сайт к Cloudflare, вы уже защищаете его от DDoS-атак. Компания скрывает IP-адрес сервера, на котором расположен ваш сайт, заставляя хакеров атаковать её серверы вместо вашего. Дальше Cloudflare блокирует подозрительный трафик, а нормальный пропускает дальше.
Кэширование тоже помогает при небольших атаках, поскольку снижает нагрузку на ваш хостинг. Но всё равно во время атаки желательно скорректировать настройки в вашем аккаунте Cloudflare, чтобы дополнительно смягчить атаку. В этом разделе поговорим о том, что именно можно сделать.
Но бесплатный тариф Cloudflare защитит не от всех атак, а только от самых распространённых. Если разбираетесь в их разновидностях, то речь об атаках 3, 4 и 7 уровней. Для большинства сайтов этого будет достаточно, потому что не всех атакуют по-крупному, но серьёзная защита от DDoS начинается именно с платных тарифов Cloudflare.
Включите режим «I’m Under Attack!»
В этом режиме Cloudflare начнёт проверяет каждого пользователя, который пытается попасть на сайт. Все они будут сначала видеть вот такое межстраничное уведомление. Так алгоритмам компании будет проще отделить вредоносный трафик от нормального.
Чтобы включить этот режим, перейдите в раздел «Security – Settings» и в первой же опции «Security Level» выберите из выпадающего списка «I’m Under Attack!».
Посетитель, который прошёл проверку, получит доступ к вашему сайту не навсегда. По умолчанию — на 30 минут, но вы можете указать другой промежуток на этой же странице в опции «Challenge Passage».
Не забудьте выключить этот режим, когда атака закончится. Нет смысла просто так усложнять посетителям доступ к сайту. Если планировали сделать это в качестве превентивной меры, лучше выберите не «I’m Under Attack!», а «High». Тогда Cloudflare тоже будет показывать межстраничное уведомление, но не всем посетителям, а только тем, с чьих IP-адресов было зафиксировано сомнительное поведение в течение последних 14 дней.
Если подключаете Cloudflare во время DDoS-атаки
Вы сможете подключиться, но злоумышленники уже знают IP-адрес вашего сервера, поэтому смогут атаковать непосредственно его.
Чтобы быстрее справиться с атакой, напишите в службу поддержки вашего провайдера хостинга. Пусть они помогут отбить атаку на своей стороне, или перенесут ваш сайт на сервер с другим IP-адресом.
Отдельный момент — первые 24 часа после переключения DNS-серверов (обычно меньше) часть трафика всё равно будет идти через старые DNS-серверы, а значит защита Cloudflare будет работать только для половины запросов.
Настройте правила доступа
С их помощью вы можете заставить посетителей проходить CAPTCHA при переходе на сайт или вообще заблокировать к нему доступ на основе региона, типа запроса, IP-адреса, диапазона IP-адресов или User Agent.
В бесплатном тарифе Cloudflare вы сможете создать всего пять правил. Для этого перейдите в разделе «Security – WAF», затем перейдите на вкладку «Custom Rules» и нажмите синюю кнопку «Create Firewall rule».
Предположим, вы выяснили IP-адреса, с которых идёт атака. Показываем, как создать правило, которое заблокирует доступ к сайту для одного IP-адреса или диапазона адресов.
Первое поле — «Rule name» — это название правила. Для нашего примера подойдет «Блокировка трафика»:
Дальше будут поля с деталями правила:
- 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 будет применять, если запрос соответствует условиям из правила:
- Block — заблокировать доступ.
- Challenge (CAPTCHA) — показывать капчу. Используется сервис Google reCAPTCHA.
- JS Challenge — показывать межстраничное уведомление, как при включенной опции «I’m Under Attack!».
- Bypass — отключить проверки со стороны Cloudflare.
- Allow — разрешить полный доступ.
В нашем примере мы хотим заблокировать трафик, поэтому выбираем «Block».
После создания правила остаётся нажать кнопку «Deploy» внизу страницы. Изменения вступят в силу немедленно.
Как очистить кэш
Кэширование на Cloudflare включено по умолчанию. Поэтому чистить кэш нужно каждый раз, когда вы что-то меняете на сайте. Иначе после публикации изменений посетители ещё какое-то время будут видеть старый контент.
Для этого перейдите в раздел «Caching – Configuration». Дальше в первой же опции нажмите «Custom Purge», чтобы очистить кэш выборочно, или «Purge Everything», чтобы очистить весь кэш на серверах Cloudflare.
Как улучшить работу отдельных страниц
В разделе «Rules» вы можете создавать правила для входящего трафика, чтобы менять работу отдельных компонентов Cloudflare, когда запрос удовлетворяет выбранным условиям. Для удобства раздел разбит на несколько подразделов:
- Configuration Rules — позволяет изменить поведение сервисов Cloudflare для отдельных запросов (например, так можно установить более сильную фильтрацию ботов для какой-то одной страницы вместо всего сайта).
- Transform Rules — позволяет менять заголовки запроса/ответа, а также менять URL из запроса (по аналогии с тем как это делает mod_rewrite в Apache).
- Redirect Rules — позволяет переадресовывать запросы на другие URL (например, сделать 301 или 302 редирект).
- Origin Rules — позволяет менять в запросе заголовок Host и значение Server Name Indication (SNI), а также перенаправлять запросы на другой порт, хостнейм или IP-адрес сервера.
- Cache Rules — позволяет более тонко настроить кэширование (например, отключить его на отдельных страницах сайта или указать разное время хранения кэша для разных страниц).
- Compression Rules — позволяет настроить сжатие, которое применяется к ответам на запросы посетителей и основывается на расширении файла или типе контента.
- Page Rules — позволяет выполнить одно или несколько действий, если запрос подходит под заданный шаблон (старый способ настройки правил, который частично включает в себя функционал из всех предыдущих подразделов).
Бесплатный тариф позволяет создавать максимум 10 правил в каждом из подразделов. Исключение — подраздел «Page Rules», в нём получится создать максимум 3 правила.
В подразделе «Templates» вы найдёте заготовки правил для редиректа с WWW на без WWW, редиректа с HTTP на HTTPS, настройки кэширования в разных ситуациях, преобразования URL для разных стран и устройств, и ещё много чего полезного.
Интерфейс по созданию правил похож во всех подразделах. На начальном экране отображаются уже созданные правила. Слева от названия правила расположены точки, чтобы изменить его позицию. Справа — троеточие с выпадающим меню, где можно изменить или удалить правило.
Чтобы создать новое правило, нажмите синюю кнопку «Create rule» в верхней части подраздела. Для примера создадим правило, которое применит усиленную проверку на ботов к странице входа в админку WordPress.
Первое поле — это название правила. Оно нужно сугубо для вашего удобства. В нашем случае мы использовали «WordPress Admin Login».
Сразу ниже — блок «If incoming requests match…» («Если входящие запросы соответствуют…»).
Сначала надо выбрать, к каким запросам должен применяться правило:
- Custom filter expression — запросы, соответствующие указанным условиям;
- All incoming requests — все входящие запросы.
Потом нужно сконструировать правило при помощи трёх полей:
- Field — параметр, который должен проверяться в запросе (в нашем случае «URL Full» — полный адрес страницы);
- Operator — как воспринимать параметр из поля «Field» (точное совпадение, начинается с, заканчивается на, содержит и т.д.);
- Value — значение параметра из поля «Field».
Ещё ниже — блок «Then…» («Тогда…»). Здесь надо выбрать, что должно происходить с запросом, который подходит под выбранные условия.
Настройки в этом блоке будут сильно отличаться в зависимости от подраздела. В случае с «Configuration rules» здесь будет список сервисов Cloudflare, которые можно настроить при помощи правил. Возле нужного сервиса нажмите кнопку «Add», чтобы увидеть дополнительные поля.
В нашем примере мы выбрали сервис «Security Level» и установили его значение на «High». Таким образом для страницы, указанной в блоке «If incoming requests match…», фильтрация ботов будет на высоком уровне вместо стандартного среднего.
Как удалить домен из Cloudflare
Перейдите в раздел «Overview» и в правом нижнем углу этой страницы нажмите «Remove from Cloudflare» в блоке «Advanced Actions», после чего подтвердите свои действия:
Если же вы просто хотите временно приостановить работу Cloudflare, выберите опцию, которая стоит чуть выше — «Pause Cloudflare». Тогда домен продолжит использовать DNS-хостинг Cloudflare, но запросы будут идти сразу к вашему хостинг-провайдеру. Кэширование, SSL и защита от DDoS-атак перестанут работать.