Увеличение количества неудачных попыток входа, атаки брутфорс?
Я установил плагин Simple Login Lockdown, и с последних пары дней база данных записывает более 200 записей в день.
Я считаю, что невозможно, чтобы на мой сайт атаковало такое количество IP-адресов.
Как вы думаете, может ли быть что-то не так?

В настоящее время активна бот-сеть, атакующая сайты на WordPress и Joomla. И, вероятно, не только. Вы должны видеть больше заблокированных попыток входа. Если этого не происходит, возможно, что-то не так.
Но учтите, что блокировка IP-адресов не поможет против бот-сети, состоящей из более чем 90 000 IP-адресов.
Если вы всё же блокируете их через плагин, избегайте Limit Login Attempts. Он хранит IP-адреса в сериализованной опции, которую необходимо десериализовать при каждом запросе. Это очень ресурсоёмко и замедляет работу.
Используйте плагин, который хранит данные в отдельной таблице базы данных, или блокируйте IP-адреса в файле .htaccess следующим образом:
order allow,deny
# топ 30 IP-адресов из списка
# http://blog.sucuri.net/2013/04/mass-wordpress-brute-force-attacks-myth-or-reality.html
deny from 31.184.238.38
deny from 178.151.216.53
deny from 91.224.160.143
deny from 195.128.126.6
deny from 85.114.133.118
deny from 177.125.184.8
deny from 89.233.216.203
deny from 89.233.216.209
deny from 109.230.246.37
deny from 188.175.122.21
deny from 46.119.127.1
deny from 176.57.216.198
deny from 173.38.155.22
deny from 67.229.59.202
deny from 94.242.237.101
deny from 209.73.151.64
deny from 212.175.14.114
deny from 78.154.105.23
deny from 50.116.27.19
deny from 195.128.126.114
deny from 78.153.216.56
deny from 31.202.217.135
deny from 204.93.60.182
deny from 173.38.155.8
deny from 204.93.60.75
deny from 50.117.59.3
deny from 209.73.151.229
deny from 216.172.147.251
deny from 204.93.60.57
deny from 94.199.51.7
deny from 204.93.60.185
allow from all
См. также:
- Кодекс: Атаки методом перебора (Brute Force Attacks)
- Защита входа с помощью .htaccess от Ipstenu (Mika Epstein)
- Пользовательские правила ModSecurity для WordPress от Liquid Web
- Защита от атак перебора на WordPress от Sucuri Blog, а также: Массовые атаки перебора на WordPress? – Миф или реальность с интересной статистикой
- Как защитить паролем файл wp-login.php от HostGator
Также стоит ознакомиться с нашим тегом security, особенно:
- Как убедиться, что я полностью удалил взлом WordPress?
- Защита административных учётных записей – Обнаружение имени пользователя
- Как брутфорсер узнаёт, что пароль взломан для целевого имени пользователя?
Если вы переместили wp-admin
или wp-login.php
, эти URL всё равно можно угадать, добавив /login
или /admin
к основному URL. WordPress перенаправит такие запросы в правильное место.
Чтобы остановить это поведение, можно использовать очень простой плагин:
<?php # -*- coding: utf-8 -*-
/* Название плагина: No admin short URLs */
remove_action( 'template_redirect', 'wp_redirect_admin_locations', 1000 );
Я считаю это безопасностью через неясность – ничего серьёзного.

У меня множество сайтов, которые в некоторые дни получают тысячи посещений, и всё полностью автоматизировано

Мы также заметили значительный рост блокировок на наших сайтах WordPress, добро пожаловать в клуб @Minapoli.

Я использую и обожаю Limit Login Attempts, но в данном случае это не полностью решит проблему, потому что ботнет, похоже, достаточно сообразительный, чтобы делать лишь несколько попыток с одного IP-адреса. Таким образом, он эффективно обходит блокировку по IP при повторных неудачных попытках входа.

@Chip Bennett, похоже, что на наших сайтах пробуют только 'aaa', 'administrator' и 'admin'. Замечали ли вы попытки использования других имен пользователей?

Идеальным, на мой взгляд, было бы внедрение системы блокировки. Например, если у пользователя происходит более X неудачных попыток входа, его аккаунт блокируется на определенное время и становится доступным только с известных IP-адресов (взятых из истории его успешных входов).

Один глупый вопрос: Если держать WordPress в другой директории, это защитит от таких атак? Я предполагаю, что они только целятся на siteurl/wp-login.php
?

@RRikesh Не уверен. Обычно siteurl/login
перенаправляет на правильную страницу входа.

@RRikesh - Нет. Перейди на domain.com/wp-admin ... Опа! Вот куда ты переместил вход! Пришлось бы перемещать всё, и даже тогда, тебе КАК-ТО нужно иметь возможность войти, так что перемещение двери в долгосрочной перспективе не помогает.

@Ipstenu Если WordPress находится в другой директории, вам нужно будет входить через domain.com/directory/wp-admin
. Однако предложение Toscho использовать domain.com/login
мгновенно перенаправляет на фактическую страницу входа (даже если WordPress установлен в другой директории).

@RRikesh - domain.com/admin на моём сайте, где WP установлен в директории, всё ещё работает :/

Подтверждаю. /login
перенаправляет на wp-login.php
, а /admin
перенаправляет на /wp-admin
.

В дополнение к ресурсам, которые перечислил toscho в своём ответе, вы также можете использовать базовую HTTP-аутентификацию PHP для защиты паролем wp-admin и/или wp-login.php, чтобы заблокировать доступ к wp-login.php.
Я недавно выпустил плагин, который делает это за вас, а также блокирует запросы без реферера (на данный момент блокировка No-Referrer не работает для сайтов, установленных в подкаталоге).

Обратите внимание, что это заблокирует пользователей с PHP, работающим через (Fast-)CGI.

Вы можете защитить админку WordPress следующими способами.
- Добавьте цифры, специальные символы и буквы в пароль администратора, чтобы создать надежный пароль
- Если в вашей базе данных много записей, это может замедлить работу сайта. Этого можно избежать, добавив графическую капчу на страницу wp-admin. Для этого существуют плагины, например https://wordpress.org/plugins/wp-limit-login-attempts/
