Apache. Ограничение доступа. Basic аутентификация

 

Используя стандартные модули Apache, возможно запрашивать логин и пароль у пользователя при попытке доступа к определенной странице или каталогу. Доступ будет разрешен, если логин и пароль присутствуют в специальном файле. Речь пойдет о аутентификации типа Basic (по умолчанию установленная)

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

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

В каждой строке файла хранятся данные об одном пользователе. Логин и зашифрованный пароль разделены двоеточием. Пример:

admin:FCSMnYLiUI8ih
vasya:lncw5eZHCSKjk

Для шифрации паролей применяется утилита htpasswd, которая поставляется в комплекте с Apache. Чтобы создать новый файл с данными о
пользователе admin, введите команду:

$ htpasswd -c .htpasswd admin

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

$ htpasswd .htpasswd vasya

После запуска, утилита попросит дважды ввести пароль и, если они совпадут, данные о пользователе будут добавлены.

Ограничение доступа

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

Пример:

<Directory "/var/www/itsecforu.ru/admin">
    AuthType Basic
    AuthName "Administrative zone"
    AuthUserFile /var/www/itsecforu.ru/
/admin/.htpasswd Require valid-user </Directory>

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

После внесения изменений в файл конфигурации, не забудьте перезагрузить Apache.

Примечания

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

В примере показан простейший типа аутентификации — Basic. Следует знать, что в этом случае пароль передается от клиента к серверу в открытом, не зашифрованном виде. Если это вас не устраивает, вы можете использовать другой вид аутентификации или протокол HTTPS.

В следующих записях расскажу о pam и krb аутентификации Apache и Postgresql

cryptoparty

Cryptography is typically bypassed, not penetrated.

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

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

5e7fa976b0640d40