Доступ на сайт по паролю за 5 строк

Что делать?

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

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

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

В принципе — все.

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

Для чего вообще это может потребоваться.

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

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

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

Закрыть доступ к директории

Разница между этими способами в том, что файл. htaccess нужно поместить в ту директорию, которую вам необходимо закрыть:

Файл .htaccess вы можете разместить в любом месте, вы уже научились узнавать его абсолютный путь. В данном случае можно просто скопировать путь из файла. htaccess корневой папки.

Инструкция защиты через htaccess и htpasswd

Нам потребуется:

Создаем файл для защиты htaccess

Проще всего этот файл создать с помощью обычного блокнота. Жмем правой кнопкой мыши на рабочий стол: создать -> текстовый документ. Открываем его с помощью обычного блокнота Windows. Жмем Файл -> Сохранить как…

Далее в поле «Имя Файла» пишем .htaccess вместе с точкой в начале. В поле «Тип Файла» выбираем «Все Файлы(*.*)». Жмем «Сохранить» и закрываем. Готово.

Использование .htpasswd

Как ограничить доступ к каталогам сайта
Самый простой способ это сделать – использовать встроенную авторизацию веб-сервера apache. Для этого используется файл .htaccess c соответствующими
директивами для apache. В самом простом случае директивы должны быть такими:

Директива authuserfile задает путь к файлу, содержащему имена и пароли пользователей. Он может иметь практически любое имя и располагаться в любом каталоге,
главное – чтобы веб-сервер мог его прочитать, что требует установки соответствующих прав доступа к этому файлу (на нашем сервере – 644). Однако традиционно
такие файлы называют .htpasswd
При таком наборе директив доступ к каталогу получат все пользователи, перечисленные в .htpasswd. Чтобы дать доступ только некоторым из них, вместо require
valid-user нужно в .htaccess записать директиву require user список_имен_пользователей
где список_имен_пользователей имеет вид: имя_пользователя1 имя_пользователя2 имя_пользователя3…
Как создать файл .htpasswd
Хотя .htpasswd – это обычный текстовой файл, для работы с ним есть специальная утилита – ее вариант для unix называется htpasswd
Команда htpasswd -c .htpasswd имя_пользователя
создаст новый файл .htpasswd, запросит пароль для пользователя и создаст запись о пользователе с указанными именем и паролем в этом файле.

Как добавить или изменить запись о пользователе в .htpasswd
Команда htpasswd имя_файла имя_пользователя
запросит пароль для пользователя и создаст запись о пользователе с указанными именем и паролем в указаном файле или изменит пароль пользователя в уже
существующей записи.
Как удалить запись о пользователе из .htpasswd
Для этого достаточно открыть .htpasswd обычным текстовым редактором, найти и удалить строчку, начинающуюся с имя_пользователя:

Подскажите, пожалуйста, как я могу создать работающий файл .htpasswd ?

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

Чем в windows создавать файлы .htpasswd, чтобы они работали?
Создавать эти файлы лучше через скрипт.

1. Создать файл паролей, выполнив из скрипта команду
/usr/local/apache/bin/htpasswd -c -b passwordfile username password

где passwordfile это, например, /home/mydomainru/.htpasswd
usernanme и password соответственно имя пользователя и пароль

2. В директории, которую Вы паролируете, создать файл .htaccess

Как настроить доступ по паролю

Во-первых, необходим файл с кодами авторизации, который содержит имена пользователей и их пароли. Во-вторых, необходимо указать веб-серверу, что доступ к этому разделу сайта (папка, директория) возможен только авторизованным пользователям.

Как создать файл .htpasswd

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

Чтобы создать файл с паролями .htpasswd и добавить пользователя используйте команду:

Контроль по ip

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

Внимание! Если вы хотите использовать эти директивы в файле .htaccess, проверьте, что бы для вашего хоста директива AllowOverride корневого файла конфигурации Apache включала опцию Limit

Order

Значения: Order (allow,deny | deny,allow)

Директива Order указывает порядок, в котором будет производиться чтение из директив Allow и Deny

  • Allow,deny – сначала читаются директивы Allow. Если пользователя нет в этом списке, то он блокируется. Если же он есть, то далее считываются директивы Deny(процесс еще не закончен). Если же пользователь есть и там, то он блокируется. Если его там нет, то он пропускается. Т.е пользователь пропускается только при наличии только в списке Allow, но не в Deny
  • Deny,allow – сначала обрабатываются директивы Deny и отсеиваются те пользователи, которые есть в этом списке. Любые другие пропускаются. Т.е пользователь пропускается всегда, но если его нет в списке Deny

Allow и Deny

Формат директив: (Allow | Deny) from (IP | IPs | all) (IP | IPs | all) : (IP | IPs | all)

Директивы Allow и Deny определяют клиентов, которым разрешить или запретить доступ к серверу.

Директивы допускают использование:

  • Одиночного IP(IP) – обычный вид IP, например, 127.0.0.1
  • Группы IP(IPs) – группа IP, например, для доступа, только из локальной сети, 192.168.1.0/24
  • Любого IP(all) – обозначает любой IP

После слова from может идти любое количество указанных директив, разделенных пробелом

Примеры

Файл .htaccess

Order allow,deny
# Deny from all # если вы это напишите, то даже те адреса,
# которые указаны в директивах Allow не будет пропущены
Allow from 192.168.1.0/24 11.11.11.12

В этом файле указывается доступ только для клиентов из локальной сети или с IP 11.11.11.12

Контроль по имени пользователя или группе

Если вам нужно защитить сайт или часть сервера паролем, используйте следующие директивы.

Немного теории.

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

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

Проверка работы .htpasswd

Если вы все сделали правильно, то при посещении запароленной папки (раздела на сайте), вы должны увидеть примерно следующее уведомление:

При вводе неправильных данных вы получите стандартное сообщение о 401-й ошибке (несанкционированный доступ, посетитель не авторизован), а при корректных данных — доступ к закрытому разделу сайта.

Сам процесс защиты через htaccess и htpasswd


Теперь открываем

с помощью блокнота файл .htaccess

на рабочем столе (или где вы его сохраняли?). Вписываем в него:

Создание файла паролей htpasswd

Копируем скачанную утилиту

в корень диска C

. Далее поймете, зачем именно в корень.

Запускаем консоль («Пуск» -> «Выполнить», пишем cmd и жмем «ОК»). Переходим в корень диска C (пишем команду cd/ ).

В самой нижней строчке, где мигает курсор должно быть написано «C:>» — мы в корне диска C.

Теперь пишите следующую команду:

Ставим пароль на файл  «wp-login.php» для ограничения доступа к админке word-press.

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

Заключение

На этом я закончу свое описание здесь средств защиты данных web-сервером Apache. Все пожелания или вопросы можете оставлять по нижеследующим координатам

На данное время (Июль 2006 года) я пишу Content Managing System(CMS) под PHP 4 , MySQL 3.23.xx и Apache 1.3 , всем желающим посмотреть или присоединиться – пишите мне сюда же

Похожее:  Тверь Атомэнергосбыт

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *