Защита каталогов посредством управления доступом
Как было указано в параграфе о разрешении 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
usernamel username2 ивегпате3 . ..
Для ограничения доступа членам групп используется строка
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.
Создание файла доступа
Рассмотрим все эти команды на двух примерах: разрешение доступа для группы и разрешение доступа по имени домена.
Разрешение доступа для группы
Следующий пример файла . htaccess разрешает доступ к конкретному каталогу только пользователям группы authors.
AuthName Authors Only AuthUserFile /etc/httpd/conf/users AuthGroupFile /etc/httpd/conf/groups require group authors
Заметьте: в этом примере указана команда AuthName для подсказки, указаны файлы паролей и групп, а также то, что пользователь должен быть членом группы authors для получения доступа к каталогу.
Разрешение доступа по имени домена
Следующий пример файла . htaccess разрешает доступ к конкретному каталогу только пользователям, которые обращаются к Web-сайту из хоста, находящегося в домене juxta.com:
order allow,deny allow from.juxta.com deny from all
Обратите внимание на порядок следования allow и deny. Логика работы следующая: при обращении к каталогу имя домена хоста сравнивается с доменом juxta. com. Если хост находится в этом домене, то доступ предоставляется. Если нет, то выполняется анализ по команде deny. Так как она запрещает доступ всем хостам, то запрашивающему хосту доступ не предоставляется.
Команда 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.
Создание файла доступа
Рассмотрим все эти команды на двух примерах: разрешение доступа для группы и разрешение доступа по имени домена.
Разрешение доступа для группы
Следующий пример файла . htaccess разрешает доступ к конкретному каталогу только пользователям группы authors.
AuthName Authors Only AuthUserFile /etc/httpd/conf/users AuthGroupFile /etc/httpd/conf/groups require group authors
Заметьте: в этом примере указана команда AuthName для подсказки, указаны файлы паролей и групп, а также то, что пользователь должен быть членом группы authors для получения доступа к каталогу.
Разрешение доступа по имени домена
Следующий пример файла . htaccess разрешает доступ к конкретному каталогу только пользователям, которые обращаются к Web-сайту из хоста, находящегося в домене juxta.com:
order allow,deny allow from.juxta.com deny from all
Обратите внимание на порядок следования allow и deny. Логика работы следующая: при обращении к каталогу имя домена хоста сравнивается с доменом juxta. com. Если хост находится в этом домене, то доступ предоставляется. Если нет, то выполняется анализ по команде deny. Так как она запрещает доступ всем хостам, то запрашивающему хосту доступ не предоставляется.
Содержание раздела