24 Aug, 2016

Настройка стандартной аутентификации в Apache используя .htaccess

.htaccess это конфигурационный файл Apache. .htaccess может быть использован для защиты конкретных каталогов в веб-сервере. Одним из наиболее распространенных видов использования является требование аутентификации пользователя.

 

Номер Раз:

Вы должны иметь директиву AllowOverride AuthConfig в файле httpd.conf . В моём примере корень сайта находится в “/var/www/html”. Поэтому моя запись в httpd.conf выглядит следующим образом:

 

<Directory "/var/www/html">

Options Indexes Includes FollowSymLinks MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all

</Directory>

 

где находится httpd.conf ?

Здесь приведены типичные места, где находится httpd.conf – конфигурационный файл веб-сервера Apache.

Расположение конфигурационного файла httpd.conf зависит используемой операционной системы и версии

Apache: FreeBSD

apache 1.3 /usr/local/etc/apache/httpd.conf
apache 2.2 /usr/local/etc/apache22/httpd.conf

 

Linux CentOS, Fedora (Redhat-системы)

/etc/httpd/conf/httpd.conf

 

Debian, Ubuntu

apache 1.3 – /etc/apache/httpd.conf

apache 2.2 – /etc/apache2/apache2.conf 

/etc/apache2/envvars – здесь находятся переменные apache – имя пользователя и группы, от имени которых работает apache (APACHE_RUN_USER, APACHE_RUN_GROUP).

Gentoo
apache 2.0 /etc/apache2/httpd.conf

 

Шаг 2:

Создаём пароль файл, для этого используем утилиту входящую в стандартную поставку сервера Apache.

htpasswd” команда используется для создания и обновления flat-files (текстовых файлов), используемых для хранения имен пользователей и паролей для базовой аутентификации пользователей Apache.

htpasswd -с /путь/к-файлу/пароль-файл newuser

вывод:

New password:
Re-type new password:
Adding password for user newuser
Внимание! Ключ”-c” создаёт новый пароль-файл. Если пароль-файл уже существует, то он будет перезаписан с данными нового пользователя.

Для добавления новых пользователей в уже существующий файл используйте команду без ключа “-с”:

htpasswd /путь/к-файлу/пароль-файл newuser
Остальные ключи утилиты htpasswd

Рассмотрим, остальные ключи утилиты htpasswd:

-n Результат работы htpasswd (имя пользователя:хеш пароля) будет выведен на экран, а не в файл.
-p Пароль хранится в виде обычного текста безо всякого шифрования. Данный формат поддерживается только в операционных системах Windows, Netware и BEOS (не рекомендую).
-d Хеш пароля вычисляется с использованием стандартной Unix-функции CRYPT. Это алгоритм шифрования по умолчанию. Используется только на *nix серверах.
-m Хеш пароля вычисляется по алгоритму MD5.
-s Хеш пароля вычисляется по алгоритму SHA1.
-D Заданный пользователь удаляется из файла с паролями.

 

Три:

Убеждаемся, что пароль файл доступен для чтения веб-сервером Apache. Если Apache не может читать файл паролей, он не будет вас идентифицировать. Вам нужно настроить правильное разрешение с помощью команды chown. Обычно Apache использует пользователя www-data. Используйте следующую команду, чтобы выяснить имя пользователя Apache:

grep -e '^User' /etc/httpd/conf/httpd.conf

вывод:

User apache

Так как у нас Apache использует имя пользователя “apache”, меняем права доступа к файлу с учетными данными:

chown apache:apache /путь/к-файлу/пароль-файл
chmod 0660 /путь/к-файлу/пароль-файл

 

Перезапускаем Apache

For CentOS/RHEL 6/5 Users:

service httpd restart

For CentOS/RHEL 7 Users:

systemctl enable httpd.service

For Ubuntu/Debian Users:

service apache2 restart

Создаём файл .htaccess в корне нашего веб-сайта, чтобы защитить весь сайт (или только в той директории которую хотим защитить) со следующим содержимым:

AuthType Basic
AuthName "Доступ ограничен, обратитесь в отдел ИТ"
AuthUserFile /путь/к-файлу/пароль-файл
require valid-user

 

You may also like...