Apache — один из наиболее широко используемых и популярных веб-серверов в мире, поэтому важно обеспечить конфиденциальность ваших веб-сайтов от неавторизованных пользователей. Аутентификацию Apache можно настроить так, чтобы посетители веб-сайта требовали входа в систему с использованием идентификатора пользователя и пароля. Существует множество способов защитить паролем каталоги на веб-сервере Apache.
В этой статье описан простой способ защитить паролем веб-каталог в Apache с помощью файла .htaccess
.
Примечание. Это руководство выполнено на сервере Ubuntu с установленным Apache.
Установка пакета утилит Apache
Сначала вам необходимо установить пакет apache2-utils
, который предоставляет утилиту под названием htpasswd
для создания файла паролей.
Вы можете установить его, выполнив следующую команду:
sudo apt-get install apache2-utils
Настройте Apache для разрешения аутентификации.htaccess
По умолчанию Apache не позволяет исп
Contents
Установка пакета утилит Apache
Вам нужно будет настроить файл конфигурации Apache, чтобы разрешить аутентификацию на основе.htaccess.Вы можете сделать это, отредактировав файл конфигурации Apache:
sudo nano /etc/apache2/apache2.conf
Найдите раздел, который начинается с Directory "/var/www/html"
, и измените строку с AllowOverride none
на AllowOverride AuthConfig
Options Indexes FollowSymLinks AllowOverride AuthConfig Require all granted
Сохраните и закройте файл.
Создайте файл паролей
Вы можете использовать утилиту командной строки htpasswd
для создания файла паролей, который Apache может использовать для аутентификации пользователей. Теперь создайте скрытый файл.htpasswd в каталоге конфигурации «/etc/apache2».
sudo htpasswd -c /etc/apache2/.htpasswd authuser1
Вам будет предложено ввести и подтвердить пароль для пользователя authuser1.
Если вы хотите добавить еще одного пользователя, оставьте аргумент -c
в команде htpasswd
.
Теперь, чтобы создать еще одну аутентификацию для второго пользователя, authuser2:
sudo htpasswd /etc/apache2/.htpasswd authuser2
Вы можете увидеть имя пользователя и зашифрованный пароль для каждой записи, выполнив:
sudo cat /etc/apache2/.htpasswd
Создайте файл паролей
"https://saintist.ru/wp-content/uploads/2024/05/apache_auth_passwdfile.png" alt="apache_auth_passwdfile">Вам необходимо предоставить пользователю «www-data» разрешение на чтение файла.htpasswd.
sudo chown www-data:www-data /etc/httpd/.htpasswd sudo chmod 0660 /etc/httpd/.htpasswd
Настроить аутентификацию по паролю Apache
Вам необходимо создать файл «.htaccess» в веб-каталоге, который вы хотите ограничить. В этом примере я создам файл «.htaccess» в каталоге «/var/www/html/», чтобы ограничить весь корень документа.
sudo nano /var/www/html/.htaccess
Добавьте следующий контент:
AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user
Вот что означает приведенный выше код:
- AuthType : этот параметр определяет тип аутентификации.
- AuthName : это контент, который отображается на веб-странице при запросе имени пользователя и пароля.
- AuthUserFile : этот параметр определяет расположение учетных данных пользователя.
- require valid-user : это означает, что только успешные запросы, прошедшие проверку подлинности, могут загрузить страницу.
Сохраните и закройте файл и перезапустите Apache, чтобы изменения вступили в силу.
sudo /etc/init.d/apache2 restart
Тестирование аутентификации пароля
Теперь на удаленном компьютере откройте свой веб-сайт в веб-браузере. Вам будет предложено ввести имя пользователя и пароль для доступа к веб-странице.
Настроить аутентификацию по паролю Apachept.png" alt="apache_auth_passwd_prompt">
Если вы введете правильные учетные данные пользователя, вам будет разрешен доступ к контенту. Если вы введете неправильные учетные данные пользователя или нажмете «Отмена», вы увидите страницу с ошибкой Несанкционировано.
Заключение
Теперь у вас должно быть достаточно знаний, чтобы настроить базовую аутентификацию для вашего веб-сервера Apache. Также помните, что защита паролем должна сочетаться с шифрованием SSL, чтобы ваши учетные данные не отправлялись на сервер в виде обычного текста.