Как защитить папку Apache паролем в Windows

Эта инструкция расскажет как установить пароль на папку веб-сервера Apache в Windows

Что надёжнее: защита сервера паролем или с помощью контроля доступа

Если вы хотите закрыть свой веб-сервер от посторонних, кто рассмотрите вариант с блокировкой по IP. Например, если вы используете веб-сервер на локальном компьютере и в локальной сети, то вы можете разрешить доступ локальным IP, а для всех остальных заблокировать доступ к веб-серверу. Если вам такой вариант подходит, то смотрите статью «Контроль доступа к сайту (блокировка по IP, User-Agent)».

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

Настройка HTTP Basic аутентификации на Apache в Windows

Данный способ настоятельно рекомендуется сочетать с HTTPS, в противном случае имя пользователя и пароль будут передаваться в открытом виде! Смотрите статью «Apache SSL: переход Apache на HTTPS».

Показанные ниже команды вы можете использовать без изменений если установили веб-сервер по следующей инструкции: «Как установить веб-сервер Apache c PHP, MySQL и phpMyAdmin на Windows». В противном случае вам нужно будет отредактировать пути до исполнимых файлов и файлов настроек.

Необходимо включить поддержку файла .htaccess, поскольку в нём будут храниться настройки по защите папки паролем. Если вы это ещё не сделали, то смотрите статью «Файл .htaccess в Apache».

Защищать паролем мы будем папку basic-protected, у меня эта папка расположена по пути C:\Server\data\htdocs\basic-protected — создаёте её и проверьте, что она доступна в веб-браузере http://localhost/basic-protected/.

Мы создадим файл C:\Server\bin\Apache24\conf\.htpasswd в котором будут храниться имена пользователей и хеши их паролей. Для этого мы воспользуемся утилитой htpasswd.exe

Синтаксис использования этой утилиты:

C:\Server\bin\Apache24\bin\htpasswd.exe -c -B C:\Server\bin\Apache24\conf\.htpasswd ИМЯ

Откройте командную строку (Win+x → Windows PowerShell) и выполните в ней эту команду, заменив ИМЯ на желаемое, например:

C:\Server\bin\Apache24\bin\htpasswd.exe -c -B C:\Server\bin\Apache24\conf\.htpasswd MiAl

Дважды введите пароль пользователя, этот пароль будет защищать папку от посторонних.

Если вы хотите добавить ещё пользователей и паролей, то используйте эту же самую команду, но без опции -c, то есть:

C:\Server\bin\Apache24\bin\htpasswd.exe -c -B C:\Server\bin\Apache24\conf\.htpasswd ДРУГОЕ_ИМЯ

Опция -c означает создать новый файл. Если файл уже существует, то он будет предварительно удалён.

Опция -B означает использовать для шифрования пароля bcrypt. В настоящее время это считается очень безопасным. В дополнении к этой опции вы можете использовать флаг -C со значением от 4 до 17. Он устанавливает время вычисления, используемое для алгоритма bcrypt (чем выше, тем безопаснее, но медленнее). Значением по умолчанию является 5.

Ещё пара опций, которые могут вам пригодиться с командой htpasswd.exe?

  • -D означает удалить пользователя. Если имя пользователя существует в указанном файле htpasswd, оно будет удалено.
  • -v означает проверить пароль. Убедитесь, что указанный пароль соответствует паролю пользователя, хранящемуся в указанном файле htpasswd.

Теперь в папке basic-protected создадим файл .htaccess со следующим содержимым:

AuthName "For registered members only"
AuthType Basic
Require valid-user
AuthUserFile C:\Server\bin\Apache24\conf\.htpasswd

Вновь откроем адрес http://localhost/basic-protected/ и убедимся, что теперь для доступа к папке необходимо ввести имя пользователя и пароль:

Если имя или пароль неправильные, то будет выведена ошибка Unauthorized с запретом просмотра содержимого папки и файлов в ней.


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

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

wp-puzzle.com logo