Как поставить пароль на директорию сайта с помощью «.htaccess» (закрываем админку Joomla, Word-Press и т.д.)

Сложность статьи:Продвинутым

Объясняю по простому, в сложные детали не вдаваясь. Все действия будем делать через файл «.htaccess». Все подробности расскажу позже. Если что-то не понятно — задавайте вопросы в комментариях. На все отвечу.

Для чего вообще это может потребоваться.
У меня возникла ситуация, что за превышение допустимых ресурсов на сервере, хостер отключил мой сайт. Я стал звонить хостеру, разбираться: «как же такое может быть,  что на сайт заходит максимум 200 человек в день, а вы его отключаете за превышение ресурсов?» Стали разбираться, оказалось, что все дело в том, что кто-то постоянно заходит на страницу административной панели Joomla и пытается подобрать пароль к сайту. Из-за этого и происходит превышение ресурсов, т.к. при каждой попытке авторизации тратится довольно большое количество процессорного времени. Т.е. мало того, что эти гады перенагрузили мой хостинг, так они еще и пароль к моему сайту подобрать пытались.

Вот статистика за 1 день, которую мне прислал хостер:
«2012-11-17 к Вашему сайту было произведено 22389 обращений, из них 15598 с ip-адреса 217.7.236.238″

Что делать?
Есть несколько методов защиты от такой попытки взломать сайт. Во-первых, я сразу закрылся от этого злополучного ip-шника. (Просто дописал в корневом файле «.htaccess» следующее содержимое:

Order Allow,Deny
Deny from x.x.x.x
Allow from All

Где x.x.x.x — злополучный ip. Что это за такой файл расскажу ниже. Этот файл вы можете найти в корневой директории сайта на Вашем хостинге.)

И, во-вторых, поставил пароль на вход на страничку с доступом к админке (на Joomle это «mysite.ru/administrator»).

Немного теории.
Есть такой файл «.htaccess». Он предназначен для конфигурирования работы сервера Apach. Особых подробностей про этот файл Вам знать не нужно. Скажу просто, что этот файл есть почти на всех распространенных хостингах. И доступ к нему можно получить только с помощью ftp. С помощью этого файла обычно задаются такие операции, как редирект со страницы без www на страницу c www, настройка отображения 404 страницы и др.

Свое действие по настройкам файл распространяет на ту директорию, в которую он вложен. Т.е. если он лежит в корневой директории, то распространяется на весь сайт. Создавать и редактировать этот файл удобно с помощью бесплатной утилиты «Notepad++» (расширение функциональности стандартного блокнота windows, всем рекомендую!!!).
В-принципе, можно редактировать и обычным блокнотом. Дело Ваше. Разницы особой нет.

Ставим пароль на папку «/administrator» для ограничения доступа к админке Joomla.
1) Создаем у себя на компьютере файл «.htaccess», с содержимым:
AuthType Basic
AuthName «Please input login and password!»
AuthUserFile @path@/.htpasswd
require valid-user

В поле @path@ мы впишем абсолютный путь к файлу «.htpasswd», в котором будет храниться наш логин-пароль. На хостинге hoster.ru этот путь у меня имеет следующий вид: «/usr/home/akknum/site.ru/shadow/.htpasswd», а на хостинге nic.ru: «/home/akkname/my-files-password/.htpasswd». Подробнее об этом расскажу ниже.

2) По ftp закачиваем этот файл в папку «/administrator».

3) Нам нужно создать файл, в котором будет храниться наш логин-пароль. Для его создания нам нужно будет использовать бесплатную утилиту «htpasswd«. Скачиваете утилиту, запускаете файл «htpasswd (GUI).exe». Возникнет такое окошко:

В нем нужно нажать клавишу «Old file». Выбрать уже существующий файл «.htpasswd» и добавить новые данные логин-пароль. (см на картинке — логин admin, пароль — 12345678).

Сохраняем файл. На всякий случай, редактируем с помощь notepad++ и закачиваем по ftp в нужную нам папку.
По поводу папки стоит остановиться подробнее. Нам желательно, чтобы это была папка, которую невозможно посмотреть из браузера. У моего хостера (hoster.ru) для этих целей была специальная папочка «/shadow». Именно в нее я закачал этот файл. В принципе, для этих целей может подойти любая папка вне главной папки сайта. Главное, чтобы у нас был доступ на редактирование этой папки. Если у Вас, дорогие читатели, нет доступа к этой папке, то не беда, можно защить от доступа извне любую папку, просто прописав в соответствующем файле «.htaccess:

<Files .htpasswd>
deny from all
</Files>

Теперь вернемся к пункту 1. В нем мы создавали файл «.htaccess», в котором содержался путь к файлу «.htpasswd». Так вот, путь этот должен быть абсолютным (если не знаете что это значит, то — рекомендую позвонить с таким вопросом хостеру, он подскажет, как узнать абсолютный путь к папке).

 

Ставим пароль на файл  »wp-login.php» для ограничения доступа к админке Word-Press.
Порядок действий будет точно таким же, как раньше, только теперь в корневом файле «.htaccess» мы пропишем следующее содержимое:

<FilesMatch wp-login.php>
AuthName «Please input login and password!»
AuthType Basic
AuthUserFile @path@/.htpasswd
require valid-user
</FilesMatch>

В остальном процедура такая же, как с админкой Joomla, только файл ».htaccess» немного отличается и лежит не в папке administrator,  а в корневой папке сайта.

В принципе — все.
По сути, все что мы сделали — подготовили 2 файла — «.htaccess» и «.htpasswd» и закачали их в специальные директории.

Проверяем, работает ли наша защита паролем. Для этого заходим по ссылке mysite.ru/administrator . И, если что-то не так — можно позвонить в техподдержку хостинговой компании, либо задать вопрос у меня в комментариях.

 

PS:

Недавно пришлось проделать данную процедуру на хостинге nic.ru. У них нет скрытой папки shadow. Поэтому пришлось самому создать такую папку. Я ее назвал «my-files-password» и закрыл от доступа кому-либо.

25 ноября 2012, 07:11

124

нет комментов

КОММЕНТАРИИ


МОИ КЛИЕНТЫ


ОТЗЫВЫ
О МОЕЙ РАБОТЕ


Спасибо! Вы подписаны на наши обновления

Подписаться на блог