Brute Force атаки — одна из самых распространённых угроз для сайтов на WordPress. Злоумышленники пытаются подобрать логин и пароль перебором, чтобы получить доступ к административной панели. В этой статье разберём, как эффективно защитить WordPress от таких атак, используя плагины и собственные решения.
Что такое Brute Force атаки и почему они опасны для WordPress
Brute Force атаки — это метод, при котором злоумышленник автоматически перебирает множество вариантов пароля, чтобы взломать аккаунт. Поскольку WordPress является самой популярной CMS, он часто становится мишенью для подобных попыток.
Опасность в том, что удачный взлом администратора даёт полный контроль над сайтом: от изменения контента до установки вредоносного ПО.
Кроме прямого вреда, атаки создают нагрузку на сервер, замедляя работу сайта и увеличивая потребление ресурсов.
Использование плагинов для защиты от Brute Force атак
Плагин Limit Login Attempts Reloaded
Один из самых популярных и эффективных плагинов — Limit Login Attempts Reloaded. Он ограничивает количество попыток входа с одного IP, блокируя адрес на определённое время после превышения лимита.
Настроить его можно так, чтобы после 5 неудачных попыток IP блокировался на 20 минут. Также есть возможность добавить белый список IP-адресов.
Плагин WP Cerber Security
WP Cerber — мощный комплексный плагин безопасности, который включает защиту от Brute Force, фильтрацию трафика, двухфакторную аутентификацию и многое другое. Он позволяет гибко настраивать лимиты попыток входа и автоматически блокировать подозрительные IP.
Пример настройки Limit Login Attempts Reloaded
После установки плагина перейдите в Настройки > Limit Login Attempts и укажите следующие параметры:
- Максимум попыток: 5
- Время блокировки: 20 минут
- Время сброса попыток: 1 час
Эти настройки обеспечивают хорошую защиту без создания дискомфорта для пользователей.
Реализация защиты от Brute Force с помощью кода
Если вы предпочитаете не использовать плагины, можно реализовать защиту в functions.php темы или в собственном плагине. Ниже приведён пример простой защиты с ограничением попыток входа по IP.
Пример кода для ограничения попыток входа
function wpmagazin_limit_login_attempts() {
$ip = $_SERVER['REMOTE_ADDR'];
$transient_name = 'wpmagazin_login_attempts_' . $ip;
$attempts = (int) get_transient($transient_name);
if ($attempts >= 5) {
wp_die('Вы превысили количество попыток входа. Пожалуйста, попробуйте позже.');
}
}
add_action('wp_login_failed', 'wpmagazin_login_failed');
function wpmagazin_login_failed() {
$ip = $_SERVER['REMOTE_ADDR'];
$transient_name = 'wpmagazin_login_attempts_' . $ip;
$attempts = (int) get_transient($transient_name);
set_transient($transient_name, $attempts + 1, HOUR_IN_SECONDS);
}
function wpmagazin_limit_login_attempts() {
$ip = $_SERVER['REMOTE_ADDR'];
$transient_name = 'wpmagazin_login_attempts_' . $ip;
$attempts = (int) get_transient($transient_name);
if ($attempts >= 5) {
wp_die('Вы превысили количество попыток входа. Пожалуйста, попробуйте позже.');
}
}
add_action('login_form_login', 'wpmagazin_limit_login_attempts');Этот код сохраняет количество неудачных попыток входа для каждого IP в transient и блокирует последующие попытки на час после 5 неудачных.
Дополнительные методы защиты от Brute Force атак
Двухфакторная аутентификация (2FA)
Подключение 2FA значительно усложняет взлом, даже если пароль скомпрометирован. Для WordPress есть хорошие плагины, например Clearfy Pro, который поддерживает 2FA и другие функции безопасности.
Изменение URL входа в админку
По умолчанию страница входа — /wp-login.php или /wp-admin. Изменение URL снижает вероятность атаки. Плагин My Popup позволяет не только изменять URL, но и настраивать уведомления и дополнительные защиты.
Блокировка по геолокации
Если ваш сайт обслуживает аудиторию из конкретных регионов, можно заблокировать попытки входа с других стран. Это реализуется через плагины безопасности или самостоятельно через .htaccess.
Мониторинг и анализ попыток входа
Регулярный мониторинг помогает выявить атаки вовремя. Некоторые плагины, например WP Cerber, ведут логи попыток входа и показывают статистику по IP и времени.
Также можно настраивать уведомления на email при подозрительной активности, чтобы быстро реагировать.
Пример простой функции для логирования неудачных входов
function wpmagazin_log_failed_login($username) {
$ip = $_SERVER['REMOTE_ADDR'];
error_log('Неудачная попытка входа: пользователь ' . $username . ' IP: ' . $ip);
}
add_action('wp_login_failed', 'wpmagazin_log_failed_login');Этот код пишет сведения о неудачных попытках в файл error_log сервера, что может помочь в аудите.
Выводы и рекомендации
Для комплексной защиты от Brute Force атак рекомендуется использовать сочетание методов: плагинов для ограничения попыток, двухфакторную аутентификацию, изменение URL входа и мониторинг активности.
Если вы хотите простой и надёжный вариант, начните с Limit Login Attempts Reloaded и Clearfy Pro — они отлично дополняют друг друга.
Не забывайте регулярно обновлять WordPress и плагины, чтобы закрывать уязвимости.