Быстрая настройка парольной аутентификации с помощью Apache в Ubuntu 18.04

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

Расширенную версию этого мануала вы найдете здесь.

Требования

  • Предварительно настроенный с помощью этого мануала сервер Ubuntu 18.04.
  • Пользователь с доступом к sudo.
  • Веб-сервер Apache2.
  • Поддержка SSL.

1: Установка пакета apache2-utils

Для начала нужно установить утилиту htpasswd. Она входит в пакет apache2-utils, который можно найти в стандартном репозитории. Обновите индекс пакетов и установите apache2-utils:

sudo apt update
sudo apt install apache2-utils

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

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

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

Команда предложит ввести и подтвердить пароль текущего пользователя.

Чтобы добавить в этот файл данные других пользователей, используйте эту же команду htpasswd без флага –с.

sudo htpasswd /etc/apache2/.htpasswd another_user

3: Настройка парольной аутентификации Apache

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

Откройте файл виртуального хоста сайта, доступ к которому нужно ограничить.

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

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

Добавьте в файл следующие строки:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/html">
AuthType Basic

AuthName "Restricted Content"


AuthUserFile /etc/apache2/.htpasswd


Require valid-user

</Directory>
</VirtualHost>

Сохраните и закройте файл.

После этого можете перезапустить веб-сервер и запросить его состояние:

sudo systemctl restart apache2
sudo systemctl status apache2

Теперь пользователь должен будет ввести пароль, чтобы просматривать каталог.

4: Тестирование аутентификации

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

Authentication Required
The server requires a username and password. The server says:
Restricted server.
User Name:
Password:

Читайте также:

Tags: , , ,