Все об AuthType или авторизация в Apache

Введение

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

В этом обучающем руководстве вы познакомитесь с защитой по паролю для активов на веб-сервере Apache под управлением Ubuntu 18.04 для обеспечения дополнительной безопасности.

Контроль по имени пользователя или группе

Если вам нужно защитить сайт или часть сервера паролем, используйте следующие директивы.

Предварительные требования

Для выполнения этого обучающего руководства вам потребуется доступ к серверу Ubuntu 18.04.

Кроме того, чтобы начать работу, вам потребуется следующее:

Примеры паролирования

Файл .htaccess

Способ 1. настройка контроля доступа в определении виртуального хоста (рекомендуется)

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

Начнем с открытия файла виртуального хоста, в который вы хотите добавить ограничение. Для нашего примера мы будем использовать файл default-ssl.conf, который хранит виртуальный хост по умолчанию, установленный с пакетом apache для Ubuntu. Откройте файл с помощью текстового редактора командной строки, например nano:

  1. sudonano /etc/apache2/sites-enabled/default-ssl.conf

Внутри, после обрезки комментариев, файл должен выглядеть примерно следующим образом:

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

Способ 2. настройка контроля доступа с помощью файлов .htaccess

Apache может использовать файлы .htaccess, чтобы разрешить настраивать определенные элементы конфигурации внутри директории контента. Поскольку Apache должен повторно считывать эти файлы в каждом запросе, который затрагивает директорию, что может негативно повлиять на производительность, рекомендуется использовать способ 1, но если вы уже используете файл .htaccess или вам нужно разрешить пользователям без прав root управлять ограничениями, файлы .htaccess могут быть полезны.

Чтобы обеспечить защиту по паролю с помощью файлов .htaccess, откройте главный файл конфигурации Apache в текстовом редакторе командной строки, например nano:

  1. sudonano /etc/apache2/apache2.conf

Найдите блок <Directory> для директории /var/www, где находится корневая директория документов. Запросите обработку .htaccess, изменив значение директивы AllowOverride внутри этого блока с None на All:

/etc/apache2/apache2.conf
. . .

<Directory /var/www/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>

. . .

Сохраните файл и закройте его после завершения. Если вы используете nano, вы можете сделать это, нажав CTRL X, затем Y и ENTER.

Далее нам потребуется добавить файл .htaccess в директорию, для которой мы хотим ограничить доступ. В нашей демонстрационной версии мы ограничим доступ ко всей корневой директории (всему веб-сайту), т. е. /var/www/html, но вы можете разместить этот файл в любой директории, для которой вы хотите ограничить доступ:

  1. sudonano /var/www/html/.htaccess

Шаг 1 — установка пакета утилит apache

Для начала мы обновим сервер и установим пакет, который нам потребуется. В этом обучающем руководстве мы будем использовать утилиту с именем htpasswd из пакета apache2-utils для создания файла и управления именем пользователя и паролями, которые будут использоваться для доступа к ограниченному контенту.

  1. sudoapt update
  2. sudoaptinstall apache2-utils

После установки мы получим доступ к команде htpasswd.

Шаг 2 — создание файла с паролями

Команда htpasswd позволяет нам создать файл с паролем, который Apache может использовать для аутентификации пользователей. Для этой цели мы создадим скрытый файл с именем .htpasswd в директории конфигурации /etc/apache2.

При первом использовании этой утилиты нам потребуется добавить параметр -c для создания заданного файла с паролями passwdfile. Мы зададим имя пользователя (sammy в данном примере) в конце команды, чтобы создать новую запись в этом файле:

  1. sudo htpasswd -c /etc/apache2/.htpasswd sammy

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

Оставьте аргумент -c для любых дополнительных пользователей, которых вы захотите добавить, чтобы избежать необходимости перезаписывать файл:

Шаг 4 — подтверждение аутентификации по паролю

Чтобы подтвердить, что ваш контент защищен, попробуйте получить доступ к ограниченному содержанию в браузере. Вы должны увидеть запрос имени пользователя и пароля, который выглядит следующим образом:

Если вы введете правильные учетные данные, вы сможете получить доступ к контенту. Если вы введете неверные учетные данные или нажмете Cancel (Отмена), вы увидите страницу ошибки Unauthorized (Неавторизованный пользователь):

Заключение

Поздравляем! После выполнения описанных выше действий вы настроили базовую аутентификацию для вашего сайта.

Похожее:  Настраиваем доменную аутентификацию на сетевом оборудовании | Windows для системных администраторов

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

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