Защита админки WordPress от перебора паролей

В интернете периодически наблюдаются массовые атаки на сайты, построенные на движке WordPress. Злоумышленники с помощью большого ботнета пытаются подобрать пароли к админкам с помощью брутфорс-атаки. Вот и мой сайт начали атаковать с такой силой, что сервер не выдерживает нагрузки и периодически ложится.

Меняем логин администратора

Большинство атак направлено на подбор пароля для пользователя admin. Поэтому необходимо его изменить на любой другой. Но сначала нужно создать нового пользователя с админскими правами и при удалении старого админа, передать все его посты вновь созданному.

В этом поможет плагин Admin Renamed Extended

Используем надежные пароли

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

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

Для увеличения надежности пароля можете попробовать плагин Two Step Authentication.

Ставим лимиты на количество неверных авторизаций

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

Паролим 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 добавить ваш логин и пароль в формате:


ваше_имя:ваш_пароль

Для генерации данного файла можно воспользоваться онлайн-сервисом.

Ссылки

Источник: https://www.kobzarev.com/wordpress/zashhita-adminki-wordpress-ot-bruteforce-ataki/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: