Настройка аутентификации по паролю в Apache на Ubuntu 18.04/20.04/22.04 LTS

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 должен быть настроен на требование действительных учетных данных для доступа к указанному каталогу. Когда пользователь попытается получить доступ к каталогу, он должен увидеть подсказку, подобную этой:

auth user password access website

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

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

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