3 эффективных способа защиты Вордпресс от брутфорса
По статистике, около 19% от общего количества всех сайтов Интернета, работают на Вордпресс — это почти каждый пятый сайт. Успех платформы вполне логичен и закономерен, не зря еще 5 лет назад я сделал ставку именно на нее.
Но сегодня речь пойдет не о преимуществах Вордпресс, а о его безопасности. Высокая популярность платформы активизировала злые силы, и вот уже на протяжении нескольких месяцев в Рунете идут массовые атаки на сайты, работающие на Вордпресс. Атаки настолько серьезные и настолько массовые, что не выдерживают даже самые мощные серверы. Хостинг-провайдеры, конечно, принимают меры, порой даже самые радикальные, вплоть до полной блокировки администраторских консолей Вордпресс. Поэтому, если вас еще не заблокировали, лучше самостоятельно провести ряд несложный действий по укреплению обороны вашего Вордпресс.
В этой статье я расскажу о самых эффективных способах защиты вашего сайта именно от брутфорса (brute force) — метода подбора и взлома пароля путем перебора всех теоретически возможных вариантов. Так как все последние массовые атаки работают по этому методу.
1. Первое с чего нужно начать — это избавиться от пользователя admin.
Если у вас нет пользователя admin, можете сразу переходить к пункту 2. В Вордпресс начиная с 3 версии это делается очень просто. Достаточно создать нового пользователя, наделить его администраторскими правами, а старого пользователя «admin» — удалить. При его удалении, Вордпресс предложит вам выбрать нового пользователя, который станет автором публикаций старого администратора.
В старых версиях Вордпресс эта процедура проделывается с помощью пары SQL-запросов:
UPDATE wp_users SET user_login = 'Ваш новый логин' WHERE user_login = 'Admin'; UPDATE wp_posts SET post_author = 'Ваш новый логин' WHERE post_author = 'admin';
2. Очень важно обратить внимание на пароль администратора.
Лучше если это будет хаотичная комбинация заглавных и строчных букв, знаков и цифр не менее чем из 10-12 символов.
3. При бутфорсе Вордпресс, производится огромное количество запросов к файлу авторизации «wp-login.php», и будет правильно обеспечить ему двойную защиту.
Если вы работаете с сайтом один, и ваш интернет-провайдер предоставляет вам статичный IP-адрес, вы можете разрешить доступ к директории «wp-admin» только с вашего IP-адреса, заблокировав тем самым для всех остальных даже возможность авторизации. Делается это следующим образом. В директории «wp-admin» создаем файл «.htaccess» следующего содержания:
order deny,allow deny from all allow from IP
Где IP — это ваш IP-адрес. Узнать его вы можете, например, здесь.
Если же, кроме вас с сайтом работают еще люди со статическими IP-адресами, вы можете просто добавить их в список ниже. Например, так:
order deny,allow deny from all allow from IP1 allow from IP2 allow from IP3
Где, IP1, IP2, IP3 — разрешенные IP-адреса.
Благодаря этому, все пользователи (боты) с IP-адресами, не указанными в списке разрешенных, просто не получат доступа к директории «wp-admin» и, соответственно, не смогут брутфорсить файл «wp-login.php». Всем им будет возвращаться ошибка 403.
Если провайдер вам выдает динамический IP-адрес, меняющийся с каждым новым подключением к Интернету, тогда этот способ не пройдет, т.к «.htaccess» придется редактировать при каждом вашем подключении к Сети. С помощью все того же «.htaccess» мы можем установить дополнительную серверную HTTP-авторизацию. Делается это следующим образом.
Все в той же директории «wp-admin» создаются два файла: «.htaccess» и «.htpasswd». В первом будут храниться инструкции, во втором разрешенные данные для доступа к директории.
В «.htaccess» пишем следующее:
AuthType basic AuthName 'Access Denied' AuthUserFile '/fullpath/.htpasswd' Require valid-user DirectoryIndex index.php
Где fullpath — полный путь к файлу «.htpasswd». Обратите на это должное внимание, т.к это самая частая ошибка. Полный путь вы можете узнать у своего хостинг-провайдера или с помощью небольшого php-скрипта:
$dir = dirname(__FILE__); echo 'Полный путь: ' . $dir . '/';
Или другим способом:
echo 'Полный путь: ' . $_SERVER['DOCUMENT_ROOT'] . '/';
Аналогичным образом закрываем файл «wp-login.php». Для этого в корневом .htaccess создаем такую запись:
<FilesMatch "wp-login.php"> AuthName 'Access Denied' AuthType Basic AuthUserFile '/fullpath/.htpasswd' require valid-user
Файл «.htpasswd» можно использовать один и тот же. Он должен выглядеть примерно так:
username:password
Где username — это имя разрешенного пользователя, а password — это пароль. Обратите внимание, что пароль хранится в зашифрованном виде. Поэтому, предварительно ваш пароль нужно зашифровать. Сделать это можно, например, с помощью этого сервиса. На пароль действуют те же правила, что указаны в пункте 2 данной публикации.
Для использования нескольких пользователей с паролями, вы можете просто перечислить их по-порядку. Например, вот так:
username1:password1 username2:password2 username3:password3
Если вы сделаете все правильно, перед авторизацией в WordPress вам будет предложено ввести логин и пароль доступа к директории (файлу). И только после успешного входа вы сможете авторизоваться и войти в администраторскую консоль.
В Safari 6.0.5 на Мак-ос это выглядит примерно так:
Выполнив хотя бы эти 3 пункта, вы в разы снизите вероятность взлома вашего Вордпресс.
Дополнительные меры по защите Вордпресс
Дополнительно вы можете защитить таким же образом файл настроек Вордпресс «wp-config.php». Я бы рекомендовал его защитить, потому что в нем содержатся данные для подключения к БД MySQL. Делается это аналогично:
order allow,deny deny from all
Также, я бы рекомендовал вам проверить директории вашего сайта. Дело в том, что очень многие хостеры и безалаберные сисадмины не закрывают по-дефолту просмотр директорий сайтов своих клиентов. Если, к примеру, ввести в адресную строку браузера: http://вашсайт/wp-includes/ и вы увидите содержимое этой директории — нужно бить тревогу и срочно закрывать просмотр. Для этого можно создать в директориях, которые вы хотите закрыть от просмотра, пустые файлы «index.html» или дописать в ваш «.htaccess» всего одну строку:
Options All -Indexes
Которая запретит серверу показывать содержимое директорий.
Кроме всего прочего, вы можете самостоятельно установить плагины безопасности Вордпресс, рекомендованные разработчиками платформы.
- BruteProtect
- Limit Login Attempts
- Lockdown WP Admin
- WP Fail2Ban
- Admin Renamed Extended
- Enforce Strong Password
- Wordfence Security
- 3WP Activity Monitor
- All in one WP Security
Их обзор в рамках данной публикации я проводить не буду.
Если в процессе настройки защиты Вордпресс от брутфорса у вас возникнут сложности — вы всегда можете обратиться ко мне за помощью. Контакты здесь.
Фулстек веб‑разработчик, специализируюсь на платформе WordPress
Подробнее