Bruteforce атаки остаются одной из самых распространённых угроз для сайтов на WordPress. Злоумышленники пытаются подобрать комбинации логина и пароля, чтобы получить несанкционированный доступ к админке. В этой статье подробно рассмотрим, как эффективно защитить WordPress от bruteforce атак с помощью популярных плагинов и собственных решений на PHP.
Почему bruteforce атаки опасны для WordPress
Bruteforce атаки могут привести к взлому сайта, изменению контента, установке вредоносного ПО и краже данных. Частые неудачные попытки входа создают нагрузку на сервер и замедляют работу сайта. Поэтому защита от таких атак — обязательный этап безопасности.
Типичные признаки bruteforce атак — множество попыток входа с одного IP или с разных IP с одинаковыми именами пользователей. Задача — ограничить количество попыток и заблокировать подозрительные IP.
Лучшие плагины для защиты от bruteforce атак
Существует несколько проверенных решений, которые легко настроить и они эффективно блокируют атаки.
1. Clearfy Pro
Clearfy Pro — мощный плагин для оптимизации и безопасности WordPress. В нем есть модуль защиты от bruteforce, который позволяет настроить лимит попыток входа, блокировать IP по геолокации и вести лог подозрительных действий.
Преимущества Clearfy Pro:
- Легкая настройка лимитов и блокировок
- Поддержка черных и белых списков IP
- Автоматическое уведомление администратора
2. Loginizer
Loginizer — бесплатный и популярный плагин, который ограничивает количество попыток входа и блокирует IP после превышения лимита. Поддерживает блокировку по времени и безопасный список.
3. Limit Login Attempts Reloaded
Этот плагин работает по тому же принципу: ограничивает количество попыток входа и блокирует IP. Есть возможность отправлять уведомления на почту, что удобно для мониторинга.
Как самостоятельно реализовать ограничение попыток входа в WordPress
Если вы хотите реализовать защиту без плагинов или дополнить их, можно использовать хук wp_login_failed и сохранять попытки входа в transient или пользовательские таблицы.
Ниже пример функции, которая ограничивает попытки входа с одного IP до 5 за 15 минут и блокирует дальнейшие попытки на 30 минут.
function wpmeta_limit_login_attempts( $username ) {
$ip = $_SERVER['REMOTE_ADDR'];
$key = 'wpmeta_login_attempts_' . $ip;
$attempts = get_transient( $key );
if ( false === $attempts ) {
$attempts = 1;
} else {
$attempts++;
}
set_transient( $key, $attempts, 15 * MINUTE_IN_SECONDS );
if ( $attempts > 5 ) {
// Блокируем IP на 30 минут
set_transient( 'wpmeta_block_ip_' . $ip, true, 30 * MINUTE_IN_SECONDS );
}
}
add_action( 'wp_login_failed', 'wpmeta_limit_login_attempts' );
function wpmeta_block_login_for_blocked_ip() {
$ip = $_SERVER['REMOTE_ADDR'];
if ( get_transient( 'wpmeta_block_ip_' . $ip ) ) {
wp_die( 'С вашего IP временно заблокирован доступ из-за слишком большого количества неудачных попыток входа. Попробуйте позже.' );
}
}
add_action( 'login_init', 'wpmeta_block_login_for_blocked_ip' );Этот код позволяет быстро ограничить количество попыток и блокировать IP без сторонних решений. Но для полноценной защиты лучше использовать плагины с расширенными функциями и логированием.
Дополнительные методы защиты от bruteforce атак
Отключение стандартного логина admin
По умолчанию многие пытаются взломать пользователя admin. Если вы еще не переименовали администратора, обязательно сделайте это или создайте другого пользователя с правами администратора и удалите admin.
Использование двухфакторной аутентификации
Подключите плагин для двухфакторной аутентификации, например WPGPT или другие проверенные решения, которые добавляют дополнительный уровень безопасности при входе.
Ограничение доступа по IP
Если у вас фиксированный IP или небольшой пул IP для админки, можно ограничить доступ через .htaccess или серверные настройки, разрешая вход только с определённых адресов.
Выводы и рекомендации
Защита от bruteforce — это комплекс мер. Используйте надёжные плагины, дополните их собственными проверками, применяйте двухфакторную аутентификацию и регулярно меняйте пароли. Это обеспечит надёжную защиту вашего сайта на WordPress от взлома.