![]() |
![]() |
![]() |
Защита каталогов
посредством управления доступом
Как было указано в параграфе
о разрешении HTmL-каталога, существует возможность установить управление доступом
для каждого каталога отдельно. Обычно это делается при помощи файла . htaccess
в том каталоге, который надо защитить. В данный файл помещаются необходимые
команды конфигурирования.
Для управления доступом
в этом файле используются следующие основные команды:
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.
Так как она запрещает доступ всем хостам, то запрашивающему хосту доступ не
предоставляется.
Управление
протоколами
Последняя рассматриваемая
функция администрирования - управление протоколами. Apache создает два важных
протокола: протокол доступа и протокол ошибок. Вместе они обеспечивают важной
информацией многие функции, включая отладку ошибочных сценариев CGi и генерацию
статистических отчетов доступа с подробной информацией об использовании Web-сайта.
Однако если о них забыть,
эти протоколы будут увеличиваться в объеме, достигая огромнных размеров. С увеличением
их размера значимость информации уменьшается, ибо обработка данных затрудняется.
.Поэтому полезно установить
график чередования протоколов. Чередование протоколов означает сохранение текущей
версии в архиве и создание нового, пустого протокола. В зависимости от посещаемости
сайта следует производить чередование протоколов раз в месяц, неделю или день
Red Hat Linux 7.1 включает
протоколы Apache в каталог /var/log/httpd. Они чередуются ; другими протоколами
из /var/log в ежедневном режиме, как указано в сценарии /etc/ cron.daily/logrotate.
Для чередования протоколов
используется утилита rotatelogs, поставляемая с дистрибутивом Apache. По умолчанию
Red Hat Linux устанавливает ее в /usr/sbin/rotatelogs. Для использования программы
добавьте следующую строку в файл httpd. conf.
TransferLog "
|/usr/sbin/rotatelogs /some/location/file time"
Элемент /sorae/location/f ile дает базовое имя файла для чередующихся протоколов Число, соответствующее системному времени начала протоколирования, добавляется к имена файла. Параметр time, в секундах, указывает, как часто выполняется чередование протоколов.
![]() |
![]() |
![]() |