Apache — самый популярный веб-сервер и самый распространенный веб-сервер в мире. Он предоставляет множество мощных возможностей, включая динамически загружаемые модули, надежную поддержку мультимедиа и широкую интеграцию с другим популярным программным обеспечением. В этом руководстве мы покажем, как настроить аутентификацию по паролю на веб-сервере Apache, настроенном на Ubuntu 18.04/20.04/22.04 LTS.
Требования
Прежде чем приступить к работе над этим руководством, вам понадобится следующее:
- Доступ к учетной записи пользователя с sudo привилегии.
- Apache установлен на Ubuntu 18.04/20.04/22.04 LTS.
Шаг 1: Создание файла паролей
Прежде чем настраивать парольную аутентификацию, необходимо создать файл паролей, на который Apache сможет ссылаться при попытке пользователя получить доступ к ограниченному ресурсу.
Мы будем использовать файл htpasswd утилита для создания этого файла. Эта утилита может создавать зашифрованные пароли, которые мы будем хранить в этом файле.
Чтобы создать файл и начать добавлять пользователей, введите:
$ sudo htpasswd -c /etc/apache2/.htpasswd <username>
Вам будет предложено ввести пароль для пользователя. Введите надежный пароль и подтвердите его.[-c
указывает утилите, что это первый пользователь, которого мы создаем в файле.
Для последующих пользователей можно не указывать флаг -c
флаг. Это добавит пользователя в существующий файл, а не перезапишет его:
$ sudo htpasswd /etc/apache2/.htpasswd <username>
Когда вы закончите добавлять пользователей, вы можете проверить содержимое файла, набрав:
$ cat /etc/apache2/.htpasswd
Шаг 2: Настройка Apache
Теперь, когда мы создали файл паролей, мы можем настроить Apache для обращения к нему.
Для этого нужно отредактировать конфигурационный файл директории, к которой мы ограничиваем доступ. Это может быть корневая директория сервера или поддиректория.
Например, если бы мы хотели ограничить доступ к корневому каталогу, мы бы отредактировали следующий файл:
$ sudo nano /etc/apache2/sites-enabled/000-default.conf
Если бы мы хотели ограничить доступ к подкаталогу, мы бы отредактировали соответствующий файл в каталоге sites-enabled каталог.
Нам нужно добавить в файл следующий блок конфигурации. Этот блок должен быть размещен между тегами, ссылающимися на директорию, к которой мы ограничиваем доступ:
<Directory /var/www/html>
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
[AuthType директива указывает Apache, какой тип аутентификации мы используем. В данном случае мы используем базовую аутентификацию.
Директива AuthName Директива задает имя для области аутентификации. Оно будет отображаться в диалоге аутентификации, предоставляемом пользователю.
Директива AuthUserFile директива указывает Apache, где искать учетные данные пользователя. В данном случае мы используем файл, созданный в Шаге 1.
Последняя директива, require valid-user, сообщает Apache, что пользователь должен предоставить действительные учетные данные для доступа к ограниченному ресурсу.
Когда закончите, сохраните и закройте файл.
Шаг 3: Перезапустите Apache
Теперь, когда мы настроили Apache на обращение к нашему файлу паролей, нам нужно перезапустить сервер, чтобы включить изменения.
Мы можем сделать это, набрав:
$ sudo systemctl restart apache2
Заключение
На данном этапе Apache должен быть настроен на требование действительных учетных данных для доступа к указанному каталогу. Когда пользователь попытается получить доступ к каталогу, он должен увидеть подсказку, подобную этой:

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