Тройная защита админки блога на CMS WordPress

В этом небольшом кате поведаю о тройной защите админской части блога на CMS WordPress. В сети можно встретить множество разных статей о том как защитить администраторскую зону сайта от злоумышленников. Как правила такие статьи предлагают решение в рамках одного конкретного плагина и более ничего. Я же опишу способ практически полной защиты вашего блога от разных посягательств. Думаю этот метод можно, в какой то мере, назвать способом защиты блога для параноиков т.к. такая защита действительно максимально комплексная и полная.

Тройная она потому, что для защиты нашей страницы авторизации и самой папки админской части блога в общей сложности будет использоваться целых 3 инструмента, которые замечательно дополняют друг друга и таким образом образуют просто не проходимую для хакеров защиту.

Установка лимитов на авторизацию

Итак, давайте начнём знакомиться с этими инструментами. Естественно это плагины для подобных целей. Первый плагина, который надо будет поставить, это Limit Login Attempts. Он позволит установить лимиты на авторизацию через страницу входа в админскую часть сайта. После установки, на странице настройки плагина, можно будет поставить настройки лимитов после которых авторизация будет не доступна. Я не понимаю почему такая функция до сих пор не идёт в базовой комплектации WordPress, ведь подобные вещи просто необходимы. По умолчанию, на странице авторизации, вводить неверные пароли можно сколько угодно раз. Из-за этого подобрать его не составляет труда для обычной программы подбора паролей. С помощью же этого плагина эта брешь в защите будет закрыта. После определенного числа неудачных попыток входа с конкретного IP адреса, функция авторизации для него будет не доступна в течении некоторого времени, которые вы можете указать в настройках плагина. Как дополнительная функция, есть авто оповещения о попытках входа в админскую часть блога на ваш email. Весь лог неудачных авторизаций так же будет вам доступен. В общем вещь не заменимая. Советую ставить как можно меньше попыток ввода. Например 1 вообще идеально, ведь вы же точно знаете свой пароль, зачем ещё гадать? Так же советую поставить максимальное время блокировки в случае не верного ввода, что бы попытаться ввести пароль ещё можно было не раньше недели спустя например.

Смена адреса страница авторизации

Вообще есть масса способов смены адреса страницы входа в админку WordPress, начиная от ручного изменения имени файла wp-login.php заменяя так же его содержимое, до специализированных плагинов. Я предпочитаю пользоваться плагинами т.к. это наиболее корректно, да и при очередном обновлении CMS всё не слетит.

Stealth Login Page

Второй инструмент в нашей защите блога, это плагин Stealth Login Page. Он позволит изменить адрес стандартной страницы авторизации для входа в админскую часть сайта на другую. Т.е. стандартный адрес для входа вида wp-admin будет дополнен GET параметром со значением. И сам параметр и его значение вы легко можете изменить в настройках плагина. Таким образом злоумышленник (хакер) не сможет даже попасть на вашу страницу авторизации, что бы попытаться подобрать пароль к аккаунту администратора блога. Если же просто набрать стандартный адрес страницы входа, то произойдёт редирект на страницу, которую вы укажете в настройках плагина. Советую параметры писать длинными и без смысла, что бы их было тяжело отгадать. Для таких вещей лучше не запоминать адрес страницы авторизации, а записать его себе отдельно.

UPD 1: Данный плагин обновился и теперь он больше не предоставляет функционал смены адреса страницы входа в админскую часть сайта. Вместо этого данный плагин теперь просто добавляет дополнительное поле кода авторизации (authorization code) в форме входа в админку, т.е. надо вводить помимо имени пользователя и пароля ещё и authorization code, который назначается в настройках плагина. В общем тоже штука не плохая и служит дополнительным барьером при взломе т.к. приходится отгадывать ещё и этот authorization code помимо имени пользователя и его пароля.

Lockdown WP Admin

Но нам всё же надо скрыть форму входа, т.е. изменить адрес страницы авторизации, поэтому для этого можно заюзать плагин Lockdown WP Admin (он же Lockdown WordPress Admin). Устанавливаем его и заходим в настройки, там всё интуитивно понятно и просто. Указываем то, что хотим скрыть админку и пишем адрес по которому форма входа должна открываться.

Ограничение доступа к файлам и папам сайта по IP на уровне web сервера

Ну и третий, так сказать, заключительный и добивающий элемент в нашей системе защиты блога от хакеров, будет не плагин для «Ворд Пресс», а настройка сервера заключающаяся в системном файле .htaccess, который надо будет создать.

Создаём такой файл, без расширения и с точкой в начале названия (или дописываем в конец существующего, если он уже есть) и записываем в него следующее:

<Files wp-config.php>
Order Deny,Allow
Deny from all
</Files>

<Files wp-login.php>
Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx
</Files>

где значение в виде xxx.xxx.xxx.xxx это ваш внешний IP адрес с которого вы воходите в сеть Интернет. Таким образом мы защищаем от всех кроме вашего IP конфигурационный файл  wp-config.php и файл авторизации wp-login.php. Новый файл кладём в корень сайта, туда где лежат все файлы WordPress.

Для защиты админки так же создаём новый файл .htaccess и пишем в него такие строки:

Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx

где так же xxx.xxx.xxx.xxx это ваш IP адрес. Этот файл закачиваем непосредственно в папку администраторской части блога wp-admin. Теперь, таким образом, мы перекрыли доступ к администраторской части сайта ещё и при помощи серверной составляющей и IP адресов. Таким образом попробовать войти смогут только те у кого такой же IP адрес как и у вас. Обычно это абоненты вашего же интернет провайдера. В случае с выделенным IP защита вообще практически не рушимая.

Таким образом войти смогут только пользователи с конкретным разрешённым IP адресом при условии, что правильно наберут адрес страницы авторизации, ведь мы же его тоже изменили. И так же при условии того, что ввод пароля будет осуществлён правильно точно с первого раза.

Так же советую банально иметь сложный пароль состоящий минимум из 16 символов в разных регистрах вперемешку с цифрами и другими разрешёнными символами. Имя администратора так же лучше изменить, в то время как на сайте вы видны под одним именем, при входе в администраторскую часть сайта должно использоваться совсем другое, которое так же состоит из большого числа разных символов не имеющих никакого смысла.

Всё это дело обязательно себе записываем, что бы потом вы сами смогли войти в свой блог. Не храните такие вещи в своей памяти, для неё есть много чего по настоящему ценного. Все пароли и логины делайте максимально сложными и длинными без всякого смысла. Всё записывайте, включая адрес страницы авторизации.

Железная защита по моему, теперь ваша администраторская зона под надёжной защитой и все попытки не удачных входов тут же видны вам т.к. эта информация сразу отсылается на ваш email.