Як використовувати Cloudflare для захисту вашого веб-сайту WordPress

Цей посібник розрахований на веб-майстрів, орієнтованих на безпеку, які ведуть сайт або блог WordPress у домені з підтримкою Cloudflare. На безкоштовному тарифному плані Cloudflare надає п’ять правил Firewall, які порожні за замовчуванням.

Додавши правила, описані на цій сторінці, ви можете захистити свій сайт і заблокувати атаки ще до того, як вони потраплять на сервер вашого веб-хостингу.

Білий список Вашої IP-адреси

Перш ніж застосовувати будь-які правила Firewall, спочатку слід додати в білий список власну IP-адресу. Таким чином, це не вплине на вас, якщо ви вирішите заблокувати адміністративну область WordPress від сторонніх осіб.

Це можна зробити, зайшовши на інформаційну панель Cloudflare і натиснувши Firewall, потім Інструменти, ввівши свій IP та вибравши Білий список у спадному меню.

Тут у вас є кілька варіантів у порядку зменшення безпеки:

  • Додайте в білий список вашу точну IP-адресу. Оптимальний вибір, якщо ваш провайдер надає вам статичний IP. Зверніть увагу, що якщо ваш IP зміниться, вам потрібно буде ввести його знову, щоб не заблокувати доступ до адміністративної області WordPress.
  • Додайте до білого списку весь діапазон IP вашого провайдера. Хороший вибір, якщо у вас динамічний IP.
  • Додайте до білого списку вану країну. Це не захистить вас від атак з боку вашої країни, але це може бути зручним варіантом, якщо ви часто подорожуєте та використовуєте Wi-Fi для підключення до свого сайту WordPress. IP-адреса або країна, внесена до білого списку таким чином, буде звільнена від усіх правил Firewall, тому вам не потрібно буде додавати винятки для кожного окремого правила.

1. Блокувати атаки wp-login.php

Якщо ви заглянете до журналів вашого сервера, ви, мабуть, знайдете численні IP-адреси з усього світу, які намагаються отримати доступ до вашого файлу wp-login.php. Це, безумовно, найпоширеніша атака на установки WordPress. Зазвичай це автоматизовані сканування, які не становлять великої загрози, але ви все одно можете заблокувати їх для вашого спокою.

Звичайно, це передбачає, що ви (адміністратор) є єдиним користувачем на своєму сайті. Якщо у вас кілька користувачів або ви використовуєте плагін для членства, ви, мабуть, захочете пропустити це правило.

На інформаційній панелі Cloudflare ще раз натисніть Firewall, а потім натисніть синю кнопку Створити правило Firewall. Назвіть його як завгодно і введіть наступне:

  • Поле: Шлях URI
  • Оператор: містить
  • Значення: /wp-login.php
  • [Дія: заблокувати]

Якщо ви зробили це правильно, ви повинні побачити наступне в розділі Попередній перегляд виразів. (http.request.uri.path contains “/wp-login.php”) Збережіть правило, і воно має бути ввімкнено автоматично. Тепер Cloudflare заблокує кожну спробу підключення до wp-login.php, за винятком IP-адреси, яку ви внесли до білого списку.

Ці спроби грубої сили зникнуть із журналів вашого сервера, але ви зможете відстежувати їх у розділі Події Firewall Cloudflare, якщо ви хочете перевірити, чи працює захист.

2. Блокувати атаки xmlrpc.php

Після wp-login.php, xmlrpc.php є другою за частотою атакою. XML-RPC має законне використання, наприклад, ведення блогу зі смартфона або розміщення вмісту одночасно на декількох сайтах WordPress. Якщо ви цього не зробите, його можна безпечно заблокувати. Дотримуйтесь тієї самої процедури, що і раніше, і створіть правило:

  • Поле: Шлях URI
  • Оператор: містить
  • Значення: /xmlrpc.php
  • [Дія: заблокувати]

Ви повинні побачити наступне в розділі Попередній перегляд виразів. (http.request.uri.path містить “/xmlrpc.php”)

3. Захистити wp-адміністратора

Тепер давайте зробимо так, щоб ви і лише ви мали доступ до своєї адміністраторської області. Це правило дещо складніше, оскільки потрібно зробити два винятки.

Спочатку це /wp-admin/admin-ajax.php, який використовується деякими плагінами для відображення динамічного вмісту на вашому веб-сайті. Таким чином, незважаючи на те, що він знаходиться всередині папки / wp-admin /, він повинен бути доступним зовні.

По-друге, це /wp-admin/theme-editor.php, який запускає перевірку помилок кожного разу, коли ви редагуєте тему через вбудований редактор, створюючи запит зворотнього зв’язку на домашню сторінку. Якщо ви не додасте цей виняток, перевірка не вдасться з повідомленням “Неможливо зв’язатися із сайтом, щоб перевірити наявність фатальних помилок”, і ваші зміни не будуть збережені.

Створіть таке правило:

  • Поле: Шлях URI
  • Оператор: містить
  • Значення: / wp-admin /

[І]

  • Поле: Шлях URI
  • Оператор: не містить
  • Значення: /wp-admin/admin-ajax.php

[І]

  • Поле: Шлях URI
  • Оператор: не містить
  • Значення: /wp-admin/theme-editor.php
  • [Дія: заблокувати]

Або просто натисніть Редагувати вираз та вставте наступне.(http.request.uri.path contains “/wp-admin/” and not http.request.uri.path contains “/wp-admin/admin-ajax.php” and not http.request.uri.path contains “/wp-admin/theme-editor.php”)

4. Блокувати запити No-Referer до плагінів

Більшість сайтів WordPress зламуються через незахищені плагіни. Звичайно, найкращий підхід – не встановлювати їх спочатку, але ви також можете створити правило Firewall, що блокує прямий доступ до / wp-content / plugins /.

Законні запити, що надходять через ваш веб-сайт, мають щось на зразок “http://yoursite.com/page” як референт HTTP і повинні бути дозволені. Можливо, ви також захочете дозволити відомих хороших ботів (наприклад, сканер Google) лише на випадок, якщо вони спробують щось проіндексувати – наприклад, зображення – у вашій папці плагінів.

Створіть таке правило:

  • Поле: Шлях URI
  • Оператор: містить
  • Значення: / wp-content / plugins /

[І]

  • Поле: Рефер
  • Оператор: не містить
  • Значення: yoursite.com (замініть на ваш реальний домен)

[І]

  • Поле: Відомі боти
  • Оператор: дорівнює
  • Значення: Вимкнути
  • [Дія: заблокувати]

Або просто вставте цей вираз безпосередньо (не забудьте замінити yoursite.com на фактичну адресу).(http.request.uri.path contains “/wp-content/plugins/” and not http.referer contains “yoursite.com” and not cf.client.bot)

5. Скоротіть спам, блокуючи прямі запити до wp-comments-post.php

Ефект від цього правила буде мінімальним, оскільки спам-боти в наші дні є досить витонченими, щоб підробляти реферала. Це лише заблокує ботів, які безпосередньо забивають файл wp-comments-post.php. Тим не менше, та сама підказка описана в WordPress Codex (за винятком того, що вони використовують правило .htaccess, а не Cloudflare).

  • Правило таке:
  • Поле: Шлях URI
  • Оператор: дорівнює
  • Значення: /wp-comments-post.php

[І]

  • Поле: Метод запиту
  • Оператор: дорівнює
  • ПОСТ

[І]

Поле: Рефер

  • Оператор: не містить
  • Значення: yoursite.com (замініть на ваш реальний домен)
  • [Дія: заблокувати]

І ось вираз, щоб заощадити ваш час. (http.request.uri.path eq “/wp-comments-post.php” and http.request.method eq “POST” and not http.referer contains “yoursite.com”)

Ваш веб-сайт тепер трохи безпечніший! Ці п’ять правил повинні охоплювати найпоширеніші атаки WordPress, але сміливо коригуйте та комбінуйте їх відповідно до своїх потреб.