Иллюстрированный самоучитель по Linux Red Hat 7.1

       

Защита каталогов посредством управления доступом


Как было указано в параграфе о разрешении 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. Так как она запрещает доступ всем хостам, то запрашивающему хосту доступ не предоставляется.


Содержание раздела