Защита каталогов посредством управления доступом
Как было указано в параграфе о разрешении HTML-каталога, существует возможность установить управление доступом для каждого каталога отдельно. Обычно это делается при помощи файла .htaccess в том каталоге, который надо защитить. В данный файл помещаются необходимые команды конфигурирования.
Для управления доступом в этом файле используются следующие основные команды:
- AuthUserFile
- AuthGroupFile
- AuthName
- AuthType
- require
- order
- deny
- allow
AuthUserFile и AuthGroupFile
Команды AuthUserFile и AuthGroupFile позволяют указать расположение файлов пользователей и групп. В нашем примере эти команды следующие:
AuthUserFile /etc/httpd/conf/users AuthGroupFile /etc/httpd/conf/groups
Эти команды очень важны: без них сервер не будет знать, где искать пользователей и их пароли.
AuthName
AuthName используется для указания домена аутентификации. Это подсказка пользователям, чтобы они знали, как вводить имя и пароль. Например, AuthName Authors Only отображает пользователю подсказку Authors Only при запросе имени и пароля.
AuthType
AuthType предназначена для указания типа аутентификации, используемого для доступа к Web-страницам в перечисленных каталогах. Поскольку единственная доступная для AuthType опция basic, эта директива мало влияет на функционирование текущей версии Apache.
Require
Команда require используется при ограничении доступа пользователям и группам. Команда может использоваться для ограничения доступа пользователей, перечисленных в файле паролей, перечисленных в команде пользователей или для всех перечисленных в команде групп.
Для ограничения доступа любого пользователя, упомянутого в файле паролей, используется следующая команда:
require valid-user
Для ограничения доступа конкретных пользователей используется формат:
require user username1 username2 username3…
Для ограничения доступа членам групп используется строка:
require group groupname1 groupname2 grouрname3…
Order
Команда order используется в сочетании с элементами deny и allow для управления доступом на уровне хостов, а не пользователей. Используя order, deny и allow можно разрешить доступ только конкретным хостам, задав их IP-адреса или имена.
Команда order указывает порядок применения команд deny и allow. Например, в команде order allow,deny вначале выполняется команда allow, и если хост клиента не соответствует условиям команды allow, то выполняется команда deny. Аналогично, order deny, allow изменяет порядок, выполняя вначале команду deny.
Deny
Команда deny указывает, каким хостам запрещен доступ к каталогу. Возможны значения all, частичное имя хоста и частичный или полный IP-адрес. Например, deny from all означает, что всем хостам запрещен доступ. Аналогично, deny from.juxta.com запрещает доступ всем хостам домена juxta.com. При использовании IP-адресов формат такой же:
deny from 194.148.43.195
Команда запрещает доступ указанному хосту.
Allow
Команда allow выполняет обратную по сравнению с deny функцию: указывает, каким хостам разрешен доступ к данному каталогу. Она имеет те же параметры, что и команда deny.