Разработка
March 7, 2022

Как защитить WordPress с помощью CloudFlare?

Несколько полезных правил для файервола которые помогут отбить атаку ботов и спамеров на ваш сайт под управлением WordPress.

Содержание:

Для активации этих правил ваш сайт должен быть подключён к CloudFlare. Заходим в меню Firewall -> Firewall Rules и создаём следующие записи (в бесплатном тарифе нам доступны только 5 правил).

Важно: site.com в примерах заменяем на ваш домен.


1. Уменьшаем количество спама в комметариях

Лучшим решением будет активация плагина Akismet Anti-Spam, но помимо него мы можем запретить POST запросы к файлу wp-comments-post.php за пределами нашего сайта. Для этого создаём следующее правило:

Блокируем доступ к файлу wp-comments-post.php.

(http.request.uri.path eq "/wp-comments-post.php" and http.request.method eq "POST" and not http.referer contains "site.com")

2. Запрещаем прямой доступ к плагинам

Большинство взломов происходит из-за наличия уязвимостей в популярных плагинах, которые позволяют хакерам находить лазейки и получать доступ к вашему сайту (загружать и изменять файлы, удалённо запускать скрипты).

Данный способ поможет защититься даже если в плагине присутствует вирус, который активируется извне. Создаём следующее правило:

Блокируем доступ к плагинам в папке wp-content.

(http.request.uri.path contains "/wp-content/plugins/" and not http.referer contains "yoursite.com" and not cf.client.bot)


Правила описанные ниже будут блокировать всех подряд, поэтому их нужно использовать только с предварительно настроеным белым списком IP адресов.

Чтобы добавить свой IP в список разрешенных зайдите в меню Firewall -> Tools и создайте такую запись:

Добавление IP адреса в белый список

Вы также можете указать несколько IP адресов (например, интернет в офисе, мобильный, домашний), диапазон или целую страну, но в таком случае доступ будут иметь большее число людей.

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


3. Блокируем доступ к форме авторизации

В логах сервера можно увидеть, сколько разных IP пытались получить доступ к файлу wp-login.php. Это может быть и перебор паролей (брутфорс) и просто чей-то интерес, убедиться, что сайт создан на WordPress.

Существует плагин, который позволяет скрыть файл wp-login.php и ссылку вида site.com/admin заменив её на другую. Если вы не хотите его использовать, то можно защитить админку создав следующее правило:

Блокируем запросы к wp-login.php.

(http.request.uri.path contains "/wp-login.php")

4. Блокируем доступ к xmlrpc.php

Для блокировки доступа к файлу xmlrpc.php (отвечает за добавление записей с телефона или через систему мультисайтов) также существуют плагины. Но, мы можем обойтись следующим правилом:

Блокируем запросы к xmlrpc.php.

(http.request.uri.path contains "/xmlrpc.php")

Оба правила можно активировать и на стороне сервера. Например, хостинг Ukraine.com.ua предоставляет такую возможность в меню Защита от ботов:

Защита от ботов на хостинге.

5. Блокируем доступ к админпанели wp-admin

Мы не можем полностью запретить доступ к папке /wp-admin потому, что CMS использует такие адреса как /wp-admin/admin-ajax.php или /wp-admin/theme-editor.php. Поэтому здесь правило будет сложнее:

Блокируем доступ к wp-admin.

(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")


Решения в виде плагинов

Не лишним будет и защита на самом сервере. Для этого лучше всего использовать проверенные плагины, о которых уже упоминалось в статье:

  1. Wordfence Security Premium - плагин для полной защиты сайта. Помимо возможности отбивать подозрительные запросы к сайту плагин может сканировать сайт на наличие вирусов (изменённых файлов, тем и плагинов).
  2. Akismet Spam Protection - плагин для фильтрафии спама в комментариях. Автоматически удаляет подозрительные плагины, проверяет рейтинг пользователей.
  3. Clearfy - плагин всё в одном для оптимизации и защиты сайта. Очень много настроек, половина из которых может не пригодиться, если вы используете WP-Rocket или Autoptimize. Из уникальных функций - возможность изменить адрес панели управления и всех системных папок (например, вместо wp-content сделать uploads тем самым запутав хакеров).
Сравнение бесплатного Clearfy и платного Clearfy Pro от разных разработчиков

Если у вас есть свои варианты защиты сайта WordPress - пишите о них в комментариях.