У цій статті розберемося навіщо потрібен 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 натисніть кнопку «Sign up» у правому верхньому куті:

Вкажіть електронну пошту в якості логіна і придумайте надійний пароль: мінімум 8 символів, хоча б одна цифра і спеціальний символ. Після цього натисніть «Create Account»:

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

Оберіть тарифний план — у нашому випадку «Free» — і натисніть «Continue»:

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

Зазвичай сервіс не пропускає записи, але якщо якась з них пропала, додайте її вручну. Якщо все у порядку, натисніть знизу кнопку «Continue»:

На наступній сторінці будуть DNS-сервери для направлення домену на Cloudflare. Встановіть їх для вашого домену на сайті компанії, у якої його реєстрували.

Якщо реєстрували домен у нас, щоб змінити DNS-сервери, зайдіть до вашого профілю і перейдіть до розділ «Мої домени». Потім натисніть «Деталі» в рядку з потрібним доменом і знайдіть розділ «Неймсервери». Впишіть неймсервери, які вам видав Cloudflare, і збережіть зміни.
Коли спрямуєте домен на Cloudflare, ви побачите у верхній частині панелі управління розділи для роботи з різними сервісами Cloudflare. У цьому посібнику ми розглянемо тільки найбільш популярні з них: Caching, DNS, SSL / TLS, Firewall і Page Rules.

Як очистити кеш
Кешування на Cloudflare увімкнено за замовчуванням. Тому чистити кеш потрібно кожен раз, коли ви щось міняєте на сайті. Інакше після публікації змін відвідувачі ще якийсь час будуть бачити старий контент.
Для цього відкрийте розділ «Caching» і перейдіть на вкладку «Configuration». Далі в першому ж блоку натисніть «Custom Purge», щоб очистити кеш вибірково, або «Purge Everything», щоб очистити весь кеш на серверах Cloudflare.

Як працювати з DNS-записами
Перейдіть до розділ «DNS». Ви побачите таблицю з усіма DNS-записами в зоні вашого домену на серверах Cloudflare.
Щоб додати новий запис, натисніть «+ Add record» над таблицею з усіма записами:

Для прикладу створимо А-запис для субдомена «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.

Щоб змінити або видалити якийсь запис, натисніть в рядку з ним кнопку «Edit». Після цього поля зі значеннями запису стануть доступні для редагування, а в лівому нижньому кутку з’явиться кнопка «Delete».

Як налаштувати HTTPS
Коли ви підключаєте домен до Cloudflare, сервіс стає додатковим етапом між відвідувачем і вашим сайтом, а це означає, що з’єднання потрібно захистити у двох місцях: на шляху відвідувача сайту до Cloudflare і на шляху від Cloudflare до сайту.
Щоб побачити статус захисту на кожному з етапів, перейдіть до розділу «SSL/TLS». У верхній частині сторінки ви побачите схему і чотири налаштування, які потрібно вибрати в залежності від того, встановлений у вас на хостингу SSL-сертифікат чи ні.

З’єднання на шляху відвідувача до Cloudflare компанія захистить сама за допомогою власного безкоштовного SSL-сертифіката Universal. Він почне працювати автоматично, як тільки ви додасте домен до акаунта. А ось щоб захистити з’єднання на шляху від Cloudflare до вашого сайту знадобиться встановити SSL-сертифікат на хостинг.
Якщо у вас на хостингу вже є 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 почне перевіряти кожного відвідувача, який намагається потрапити на сайт. Всі вони будуть спочатку бачити ось таке повідомлення. Так алгоритмам компанії буде легше відокремити шкідливий трафік від нормального.

Щоб увімкнути цей режим, перейдіть до розділу «Firewall», відкрийте вкладку «Settings» і оберіть «I’m Under Attack!» зі списку в блоку «Security Level»:

Перевірений відвідувач отримає доступ до вашого сайту не назавжди. За замовчуванням це 30 хвилин, але ви можете вказати інші тимчасові рамки на цій же вкладинці в блоку «Challenge Passage»:

Не забудьте вимкнути цей режим, коли атака закінчиться. Немає сенсу просто так ускладнювати відвідувачам доступ до сайту.
Якщо планували увімкнути цей режим у якості превентивного заходу, краще оберіть не “I’m Under Attack!», А «High». Тоді Cloudflare теж буде показувати міжсторінкових повідомлення, але не всім відвідувачам, а тільки тим, з чиїх IP-адрес було зафіксовано сумнівну поведінку протягом останніх 14 днів.
Якщо підключаєте Cloudflare під час DDoS-атаки
Ви зможете підключитися, але зловмисники вже знають IP-адресу вашого сервера, тому зможуть атакувати його безпосередньо.
Щоб швидше впоратися з атакою, напишіть службі підтримки вашого хостера. Нехай вони допоможуть впоратися з атакою на своєму боці, або перенесуть ваш сайт на сервер з іншою IP-адресою.
Окремий момент — після перемикання DNS-серверів на домені наступні кілька днів частина трафіку все одно буде йти через старі DNS-сервери, а значить захист Cloudflare буде працювати тільки для половини запитів.
Налаштуйте правила доступу
З їх допомогою ви можете змусити відвідувачів проходити CAPTCHA при відвідуванні сайту або взагалі заблокувати доступ до нього на основі регіону, типу запиту, IP-адреси, діапазону IP-адрес або User Agent.
У безкоштовному тарифі Cloudflare ви зможете створити всього п’ять правил. Для цього перейдіть у розділі «Firewall» на вкладинку «Firewall Rules» і натисніть «Create a 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 не працювали для них взагалі або працювали по-іншому.
У безкоштовному тарифі Cloudflare ви зможете створити всього три таких правила. Спочатку ми покажемо, як взагалі влаштований цей процес. А потім розглянемо кілька конкретних правил, які могли б вам стати у нагоді.
Перейдіть до розділу «Page Rules» і в першому ж блоку натисніть кнопку «Create Page Rule»:

На наступній сторінці ви побачите два блоки з полями:
- 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 встановлює на сайті рівень захисту 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. Так ви вимкнете кешування для цих сторінок. На сторінках входу до акаунта краще обійтися без нього.

Кешування для контенту, який рідко буде змінюватися
Частина матеріалів на вашому сайті, наприклад картинки, не буде часто змінюватися. Якщо правильно налаштувати кешування для такого контенту, ви знизите навантаження на сервер та обсяг трафіка, який ви використовуєте. Для цього створіть правило з такими умовами:
- У блоку 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 днів, якщо це потрібно.

Редирект сайту з 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
Перейдіть до розділу «Overview» і в правому нижньому кутку цієї сторінки натисніть «Remove Site from Cloudflare» в розділі «Advanced Actions», після чого підтвердіть цю дію:

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