Быстрая настройка парольной аутентификации с помощью Apache в Ubuntu 18.04
Quickstart, Ubuntu | Комментировать запись
Данный мануал поможет настроить парольную аутентификацию через 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:
Читайте также:
- Настройка виртуальных хостов Apache в Ubuntu 16.04
- Использование файла .htaccess
- Перезапись URL-адресов на Apache в Ubuntu 18.04
- Перемещение корневого каталога Apache в Ubuntu 18.04