Защита сайта от DDoS-атак

В этой статье будет рассмотрена настройка сервиса CloudFlare для сайта. Плюсы CloudFlare:

  • удобная настройка: при подключении CloudFlare берет текущие DNS-записи у домена и полностью копирует их к себе;
  • защита сайта и кеширование;
  • собственная система статистики и мониторинга посещений;
  • множество дополнительных приложений;
  • бесплатный SSL.

    • У CloudFlare множество полезных инструментов, с подробным списком можно ознакомиться на официальном сайте компании.

      Основная цель статьи - осветить базовую настройку подключения сервиса CloudFlare для Вашего сайта, тем самым обезопасив Ваш ресурс от всевозможных атак злоумышленников. Имеются как платные, так и бесплатные тарифы (подробнее можно узнать здесь). В статье будет рассмотрена настройка бесплатного тарифа. Для начала необходимо зарегистрироваться на сайте, нажав кнопку "Sign Up":

      Здесь нужно заполнить регистрационные данные и нажать кнопку "Create Account":

      Затем нужно ввести домен, который хотим обезопасить. В примере рассматривается домен cuteandfunnyanimals.ru. После его добавления нужно нажать кнопку "Add site":

      Теперь нужно выбрать тарифный план и нажать на кнопку "Confirm plan":

      На следующей странице видно, что CloudFlare успешно опознал домен и скопировал все DNS-записи. Значок оранжевого облака говорит о том, что весь трафик теперь идет через Cloudflare, однако настройка еще не закончена:

      Для продолжения нужно нажать "Continue":

      Сейчас CloudFlare просит сменить DNS-сервера (далее по тексту - NS-записи) нашего домена, представленные в пункте 1, на его NS-записи, указанные в пункте 2.

      В рассматриваемом примере это:

      hera.ns.cloudflare.com
      piotr.ns.cloudflare.com
      

      Теперь нужно в панели управления регистратора домена сменить NS-записи домена. Если домен регистрировался через Beget, то сменить их можно в разделе DNS панели управления:

      После подтверждения изменений раздел DNS будет выглядеть следующим образом:

      Подробнее о работе с этим разделом Вы можете прочитать в нашей статье.

      После изменения записей возвращаемся на Cloudflare и подтверждаем внесенные изменения, нажав на кнопку "Done, check nameservers".

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

      Пользователи, которым на текущий момент не требуется работа сайта по защищенному протоколу, могут пропустить данный шаг, нажав кнопку "Set up later" и перейдя к следующему шагу. Вернуться к пропущенному шагу и настроить SSL-сертификат на CloudFlare Вы всегда можете, перейдя в раздел "SSL/TLS" в панели управления Cloudflare.

      Помимо настройки самого метода шифрования, используемого на сайте, имеется возможность настроить другие параметры, например, сжатие с помощью алгоритма Brotli. Подробнее о представленных на Cloudflare инструментах Вы можете прочитать на самом сервисе, нажав на "Help":

      Перед настройкой шифрования рекомендуется ознакомиться с нашей статьей, в которой описаны основные моменты подключения SSL к сайту, а также решение возможных проблем.

      Нас интересуют два метода шифрования - Flexible и Full:

      При методе Flexible шифрование данных происходит только между сервером CloudFlare и браузером пользователя, обеспечивая, таким образом, только частичное шифрование данных от конечного сервера до браузера:

      Методы Full и Full (Strict) отличаются только требованиями к проверяемому SSL-сертификату. Само же шифрование обеспечивается между браузером, сервером CloudFlare и конечным сервером, на котором находятся файлы Вашего сайта:

      Подробнее обо всех методах шифрования Вы можете прочитать в официальной документации сервиса.

      • Для подключения метода Flexible достаточно выбрать этот режим и ознакомиться с действиями, описанными в статье по подключению SSL, в разделе "Возможные проблемы при подключении SSL".
      • Для подключения метода Full необходимо создать запрос в произвольной форме (тикет) через раздел "Поддержка", чтобы:
        • Произвести установку самоподписанного SSL-сертификата, необходимого для режима Full;
        • Узнать SSL IP-адрес сервера, чтобы заменить его в разделе "DNS" CloudFlare;

      В ответном сообщении сотрудники технической поддержки уведомят Вас, что сертификат установлен, а также сообщат необходимый нам SSL IP.

      Возвращаемся к CloudFlare. Продолжаем, нажав на кнопку "Done".

      После полного делегирования домена на NAME-сервера CloudFlare, на которое понадобится около 24-72 часов (в зависимости от интернет-провайдера), все запросы будут полностью проксироваться через CloudFlare. Когда процесс делегирования домена успешно завершится, в личном кабинете CloudFlare должно отображаться, что сайт полностью активирован на CloudFlare:

      До этого Вы будете наблюдать аналогичную страницу, в которой продублированы инструкции по смене NS-записей домена на NS-записи CloudFlare (т.е. инструкции о делегировании домена на NAME-сервера CloudFlare), а также есть возможность произвести проверку NS-записей домена повторно. В этом нет необходимости, так как процесс автоматизирован.

      Направимся в раздел "DNS", чтобы изменить IP-адрес в A-записи домена на SSL IP, полученный ранее. Изменения необходимо вносить в поле "Content":

      Дополнительно подтверждать изменения не требуется - они сохраняются автоматически.

      В разделе "SSL/TLS" на вкладке "Overview" Вы можете настроить метод шифрования, если ранее Вы пропустили этот шаг, просмотреть статистику переданного трафика за последние 24 часа с градацией по существующим версиям криптографических протоколов (TLS v.1.0, TLS v.1.1 и т.д.). На вкладке "Edge Certificates" Вы можете просмотреть установленные сертификаты и настроить автоматическую переадресацию всех запросов с протокола HTTP на HTTPS:

      Изменив переключатель с "Off" на "On" в поле "Always Use HTTPS".

      Также в этом разделе возможно настроить автоматическую перезапись ссылок с протокола HTTP на HTTPS, решив проблему со смешанным содержимым, аналогично изменив положение тумблера с "Off" на "On" в "Automatic HTTPS Rewrites":

      Также на странице "Overview" в разделе "Quick Actions" Вы можете включить режим "Under Attack", а также настроить уровень проверки в случае, когда на Ваш сайт осуществляется большое количество запросов в связи с DDoS-атакой:

      Посетителям будет показываться пятисекундная заглушка Cloudflare. В это время происходит проверка с помощью JavaScript - вредоносный посетитель/бот или нет:

      Данный режим стоит отключить после окончания атаки. Отслеживать статистику запросов Вы можете в разделе "Analytics" Cloudflare.

      Также в разделе "Quick Actions" Вы можете включить т.н. "Режим разработки" - "Development Mode", при котором происходит временное отключение кэша Cloudflare. Это необходимо, например, для отслеживания изменений в реальном времени на сайте во время проведения на нем каких-либо работ. Режим разработки длится 3 часа, о чем сообщается на странице "Overview":





      Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел "Помощь и поддержка".