У цій статті розберемося навіщо потрібен 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-сервери, зайдіть до вашого профілю і перейдіть до розділ «Мої домени». Потім натисніть «Деталі» в рядку з потрібним доменом і знайдіть розділ «Неймсервери». Впишіть неймсервери, які вам видав 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-адресою.
Окремий момент — після перемикання 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 увімкнено за замовчуванням. Тому чистити кеш потрібно кожен раз, коли ви щось міняєте на сайті. Інакше після публікації змін відвідувачі ще якийсь час будуть бачити старий контент.
Для цього перейдіть у розділ «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…» («Тоді…»). Тут треба обрати, що має відбуватися із запитом, який відповідає обраним умовам.
Налаштування в цьому блоку будуть сильно відрізнятися в залежності від підрозділу «Rules». У випадку з «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-атак перестануть працювати.