Простая аутентификация в Apache

Иногда возникает необходимость закрыть доступ к тому или иному web-ресурсу. Сделать это можно используя различные методы аутентификации. Одним из самых простых и быстрых является метод basic authentification.

На простом примере мы рассмотрим настройку basic authentification в Apache.


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

Итак, создадим файл, выполнив:

После выполнения вышеуказанной команды, будет предложено ввести пароль для пользователя vasya:

New password:(введите пароль и нажмите Enter)
Re-type new password:(повторите пароль пользователя vasya)

После вышеуказанных действий, мы увидим, что пользователю vasya успешно присвоен пароль:

Adding password for user vasya

Собственно, на этом и все, файл с паролем пользователя vasya был вами создан. Как вы заметили, в первой выполненной нами команде (htpasswd -c passwd vasya) мы использовали ключ -c. Именно он позволяет создать файл с паролями. В дальнейшем, когда у вас будет необходимость добавить в файл дополнительных пользователей, этот ключ вы можете опустить.

Следующим шагом будет обеспечение защиты от доступа к файлу с паролями. Во-первых, нам необходимо разместить файл passwd в более надежном месте (к примеру в каталоге /etc/httpd/secret/ ). А, во-вторых, выставить необходимые права (только наш веб-сервер может читать и только пользователь root может писать в него) на файл с паролями. В этом нам помогут команды chown и chmod.

Назначаем владельца и группу на файл:

chown root.nogroup /etc/httpd/secret/passwd

Выставляем права (rw- r-- --- ):

chmod 640 /etc/httpd/secret/passwd

Ну, а теперь завершающий аккорд - небольшие изменения в конфигурационном файле Apache (httpd.conf) в разделе <Directory> вашего web-ресурса:

AuthType Basic
AuthName "Authorized access only"
AuthUserFile /etc/httpd/secret/passwd
Require valid-user

Вот и все! Вы защитили свой web-ресурс методом basic authentification!