Введение

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

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

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

apache illustration for: Предварительные требования

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

  • Пользователь sudo на сервере
  • Веб-сервер Apache2
  • Защищенный с помощью SSL сайт

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

Мы установим утилиту с названием htpasswd, которая является частью пакета apache2-utils, для управления именами пользователя и паролями для доступа к ограниченному контенту.

				
					
sudo apt update

sudo apt install apache2-utils

				
			

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

Мы создадим первого пользователя следующим образом (замените `<^>first_username<^> на имя пользователя по вашему выбору):

				
					
sudo htpasswd -c /etc/apache2/.htpasswd &lt;^&gt;first_username&lt;^&gt;

				
			

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

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

				
					
sudo htpasswd /etc/apache2/.htpasswd &lt;^&gt;another_user&lt;^&gt;

				
			

Шаг 3 — Настройка аутентификации по паролю для Apache

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

Откройте файл виртуального хоста, в который вы хотите добавить ограничение, в текстовом редакторе, например nano:

				
					
sudo nano /etc/apache2/sites-enabled/&lt;^&gt;default-ssl.conf&lt;^&gt;

				
			

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

На этом шаге добавьте в файл следующие выделенные строки:

				
					
[label /etc/apache2/sites-enabled/default-ssl.conf]

&lt;VirtualHost *:80&gt;

  ServerAdmin webmaster@localhost

  DocumentRoot /var/www/html

  ErrorLog ${APACHE_LOG_DIR}/error.log

  CustomLog ${APACHE_LOG_DIR}/access.log combined



  &lt;Directory "/var/www/html"&gt;

      &lt;^&gt;AuthType Basic&lt;^&gt;

      &lt;^&gt;AuthName "Restricted Content"&lt;^&gt;

      &lt;^&gt;AuthUserFile /etc/apache2/.htpasswd&lt;^&gt;

      &lt;^&gt;Require valid-user&lt;^&gt;

  &lt;/Directory&gt;

&lt;/VirtualHost&gt;

				
			

Проверьте конфигурацию с помощью следующей команды:

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

				
					
sudo systemctl restart apache2

sudo systemctl status apache2

				
			

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

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

Другие обучающие руководства

Ниже представлены ссылки на более подробные материалы, связанные с настоящим обучающим руководством: