Как закрыть папку паролем. Защита WordPress

Дошли слухи о том, что WordPress далеко не идеал безопасности. Хоть обновления выходят достаточно часто, но в систему все равно умудряются пролезть. Но судя по тому, что официальный плагин «jetpack» от WordPress заявил, что за 2 дня с момента его установки меня пытались сломать 32 раза, то я решил обезопаситься.

Честно, не представляю как работает WordPress и в статье «Ссылки и ревизии статей в WordPress» уже упоминал о том, что обычно работаю с 1С-Битрикс. Поэтому выбрал самый надёжный метод — поставил пароль на главные файлы/папки управления, через которые можно проникнуть. Посчитал что к таким особо уязвимым относятся файл wp-login.php и папка /wp-admin/.

При закрытии паролем файла/папки необходимо выполнить два действия: создать файл с логином-паролем, указать какие папки надо закрыть. На Linux для создания файла с паролем необходимо использовать команду

htpasswd -c /etc/htpasswd/alexgur.ru/.htpasswd user_name

Объяснение по порядку:

  • Ключ «-c» означает создание файла при его отсутствии. Значение всех параметров можно посмотреть в документации htpasswd
  • Обратите внимание на директорию для хранения файла: «/etc/htpasswd/alexgur.ru/.htpasswd». Она находится вдалеке от сайта, поэтому достать файл и подобрать пароль будет крайне сложно. Не стоит класть файл с паролем в корневую папку сайта.
  • «user_name» необходимо заменить на логин (думаю, не стоит ставить тут свой логин от входа в административную часть WordPress — лучше придумать другой).
  • После ввода команды попросят задать пароль и подтвердить

Теперь осталось только указать какие папки и файлы хотим защитить этим паролем. Записываем в конец файла .htaccess (в корневой сайта) следующие строки:

<Files «wp-login.php» >

AuthUserFile /etc/htpasswd/alexgur.ru/.htpasswd

AuthName «Authentication Required»

AuthType Basic

Require valid-user

</Files>

Этот файл находится отдельно от панели администратора. Поэтому защищать его надо индивидуально, через .htaccess в корневой папке сайта. Теперь подробнее что же здесь написано:

  • Внутри <Files «» > пишем на какой файл/папку будет распространяться правило
  • AuthUserFile — путь к файлу, где хранится пароль, который был создан ранее
  • AuthName «…» — текст на табличке, которую увидит пользователь с просьбой авторизоваться
  • AuthType Basic — тип аутентификации. Для простой аутентификации значение: Basic
  • Require valid-user — разрешает доступ всем пользователям, прошедшим проверку

Попробуйте запустить браузер в режиме «инкогнито» и загрузить страницу сайта /wp-login.php. Если увидите требование к авторизации, то всё сделано верно.

Далее необходимо защитить панель администратора. Создаём файл .htaccess в папке /wp-admin/ со следующим содержанием:

AuthUserFile /etc/htpasswd/alexgur.ru/.htpasswd

AuthName «Authentication Required»

AuthType Basic

Require valid-user

Теперь при входе в панель администратора будет появляться запрос на ввод логина/пароля.



2016-08-08T19:40:33
Веб сайты