Настройка доступа по паролю в Apache на Debian

Справочник системного администратора

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

Полагаю у вас уже установлены утилиты для Apache, если нет – установите их с помощью команды:

sudo apt-get install apache2-utils

В этот пакет входит утилита httpasswd, которая нам понадобится для создания паролей.

Создадим файл с паролем для пользователя admin:

sudo htpasswd -c /etc/apache2/.htpasswd admin

После выполнения команды нам будет предложено два раза ввести пароль.

Проверить, создался ли пароль, можно при помощи команды:

cat /etc/apache2/.htpasswd

На экран будет выведен пароль в зашифрованном виде:

admin:$apr1$SBeKUbvA$gAPTJgE0JqBiAGK2tl5041

Теперь, когда у нас есть пароль в том виде, в котором его сможет прочесть Apache 2, можно приступать к настройке.

Откроем конфигурационный файл хоста на котором работает наш сайт:

sudo nano /etc/apache2/sites-enabled/000-default.conf

После строки CustomLog ${APACHE_LOG_DIR}/access.log combined вставим следующий код:

<Directory "/var/www/html">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>

После /var/www/html вы можете указать путь к любой директории на сайте, или же к определенному файлу, которые необходимо закрыть паролем. Если оставить как есть, пароль будет запрашиваться сразу при доступе ко всему сайту.

Сохраните файл комбинацией Ctrl+X и выходите из редактора.

Проверяем конфигурационный файл на валидность:

sudo apache2ctl configtest

Если все в порядке – перезапускаем Apache:

sudo service apache2 restart

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

Tags: