Налаштування брандмауера з рівня CloudFlare GOD

У цій статті ми поділимося своїм досвідом налаштування брандмауера від CloudFlare, щоб він взагалі відрізав будь-які спроби завдати шкоди сайту, але це не завадить правильній індексації і роботі будь-яких сервісів. Про підключення і використання CloudFlare ми вже згадували в статті про отримання безкоштовного SSL-сертифіката, ми не будемо дублювати інструкцію по підключенню тут і відразу ж перейдемо до конфігурації.

Налаштування брандмауера CloudFlare

Перейдіть до розділу Брандмауер – Правила брандмауера та додайте нові правила: В результаті у нас з'являться правила такого роду: Тепер давайте розберемося, як ми можемо його отримати, що він дає і чому це так.

Результат

  • Невразливість до DDOS-атак
  • Повна відсутність спаму
  • Сайт повністю функціональний
  • Захист паролем від грубої сили
  • Зменшити навантаження на сервер
  • Захист від злому

Дозволити хороших ботів

GoogleBot, Ahrefs та інші хороші боти не повинні мати проблем з доступом до сайту, тому перший момент полягає в тому, щоб дозволити їм доступ до всіх без питань: Правило:
(cf.client.bot) або (http.request.uri.path містить "/wp-cron.php")
Примітка: Якщо сайт зроблений на WordPress і відчуває проблеми з автоматичними оновленнями після налаштування брандмауера, то все одно варто дозволити доступ до /wp-cron.php для вирішення проблеми. Налаштування слід додавати тільки в тому випадку, якщо сайт фактично не оновлюється автоматично, іноді він оновлюється без проблем і тоді цей виняток не потрібен.

Блокування доступу до HTTP

Тобто не на HTTPS, а на HTTP, тобто на старий незабезпечений протокол. Хто туди поїде, якщо сайт вже кілька років переходить на HTTPS і SSL? Незрозуміло, чи дамо ми їм додаткову перевірку. Правило:
(не ssl)

Перевірка на наявність викликів до старих версій HTTP

Всі сучасні браузери використовують сучасні протоколи, старі використовують в основному всілякі парсери і спам-боти. Тому ми сміливо забороняємо їх: Правило:
(http.request.version in {"HTTP/1.0" "HTTP/1.1" "HTTP/1.2"})

Ми перевіряємо заявки з нецільової країни

Якщо сайт, наприклад, російською мовою і його трафіком є Росія, Україна і Білорусь, а решта країн складають невеликий відсоток трафіку, то може бути доречно перевірити на рівні CloudFlare браузер на такий трафік. Це не замок, всього за 1-2 секунди людина бачить інформацію про чек, а потім пропускає її. І ботів немає. Правило:
(not ip.geoip.country in {"UA" "RU"})

Захищаємо від паролів грубої сили

Ми перевіряємо всі відвідування сторінки авторизації, це захищає нас від масового пошуку паролів. Правило:
(http.request.uri.path містить "/wp-login.php")
Тільки адреса сторінки авторизації повинна бути замінена на ту, яка використовується на захищеному сайті.