В интернете периодически наблюдаются массовые атаки на сайты, построенные на движке WordPress
. Злоумышленники с помощью большого ботнета пытаются подобрать пароли к админкам с помощью брутфорс-атаки
. Вот и мой сайт начали атаковать с такой силой, что сервер не выдерживает нагрузки и периодически ложится.
Меняем логин администратора
Большинство атак направлено на подбор пароля для пользователя admin
. Поэтому необходимо его изменить на любой другой. Но сначала нужно создать нового пользователя с админскими правами и при удалении старого админа, передать все его посты вновь созданному.
В этом поможет плагин Admin Renamed Extended
Используем надежные пароли
Многие пользователи использует очень ненадежные пароли, которые достаточно просто подобрать по словарю. По возможности при выборе пароля следуйте следующим правилам:
- Пароль не должен совпадать с вашим реальным именем, логином, никнеймом, названием компании, где вы работаете и именем вашего сайта;
- Пароль не должен совпадать с словами из словарей на любом языке;
- Пароль не должен быть коротким (не менее 6-ти символов);
- Пароль не должен состоять только из цифр или букв (их надо смешивать, добавлять различные символы и менять регистр некоторых букв).
Для увеличения надежности пароля можете попробовать плагин Two Step Authentication.
Ставим лимиты на количество неверных авторизаций
Еще одним действенным способом защиты является ограничение числа попыток входа, сделанных на вашем сайте с последующей блокировкой пользователя и уведомлением об этом администратора. Здесь вам помогут такие плагины, как:
- Limit Login Attempts
- Block brute-force attacks
- BruteProtect
- Lockdown WP Admin
- WP Fail2Ban
- Admin Renamed Extended
- Enforce Strong Password
- Wordfence Security
- 3WP Activity Monitor
- All in one WP Security
- Rename wp-login.php
- Brute Force Login Protection
Паролим wp-login.php
Если Вы единственный пользователь админки, то достаточно включить basic-авторизацию
для страницы логина (wp-login.php
) и самой админки (wp-admin
).
Для этого открываем конфиг nginx.conf
для редактирования:
sudo nano /etc/nginx/nginx.conf
Добавляем новый блок location
к вашему сайту, запрашивающий пароль доступа к папке wp-admin
и файлу wp-login.php
:
location ~ ^/(wp-admin|wp-login.php) { auth_basic "Restricted area"; auth_basic_user_file /путь_до_htpasswd; try_files $uri @fallback; }
Для создания файла auth_basic_user_file
воспользуйтесь любым сервисом генерации .htaccess
файлов, например, этим.
Если Ваша тема или плагин работают по технологии AJAX
, то следует разрешить доступ к файлу /wp-admin/admin-ajax.php
, добавив ещё один location
:
location /wp-admin/admin-ajax.php { allow all; }
Перегружаем конфиг сервера:
sudo service nginx reload
Проверяем результат. Для этого пробуем зайти на страницу логина (wp-login.php
).
Если у вас Apache
Для этого веб-сервера достаточно в файле .htaccess
прописать следующее правило:
AuthType Basic AuthName "Protected page" AuthUserFile /путь_к/.htpasswd Require valid-user <files admin-ajax.php> Order allow,deny Allow from all Satisfy any </files> <files admin-post.php> Order allow,deny Allow from all Satisfy any </files> <files ".(css|gif|png|js)$"> Order allow,deny Allow from all Satisfy any </files>
Ну и в файле .htpasswd
добавить ваш логин и пароль в формате:
ваше_имя:ваш_пароль
Для генерации данного файла можно воспользоваться онлайн-сервисом.
Ссылки
- Brute Force Attacks (оригинал)
Источник: https://www.kobzarev.com/wordpress/zashhita-adminki-wordpress-ot-bruteforce-ataki/