apache: аутентификация и авторизация #6: mod_authz_host

, apache

Отдельное место среди всех авторизаторов занимает модуль mod_authz_host. При обработке запроса этот модуль вызывается раньше любых других модулей аутентификации/авторизации и используется для контроля доступа на основании данных о хосте клиента (имя хоста, адрес) и характеристик запроса (через переменные окружения). Этот модуль, пожалуй, наиболее часто используемый в Апаче для контроля доступа.

Работа модуля определяется директивами: Order, Allow, Deny. Директива Order определяет порядок проверки правил:

Order allow,deny

значит, что первыми будут проверятся правила allow (т.е. разрешающие), потом - правила deny (запрещающие). Если никаких правил нет - действие по умолчанию - запретить всем. Директива

Order deny,allow

значит наоборот. Первыми будут применяться правила deny, потом - allow. Действие по умолчанию - пускать всех. Директивы Allow и Deny задают правила для проверки:

# пускать всех клиентов из зоны .org
Allow from .org
# три идентичных правила: пускать из подсети 192.168
Allow from 192.168
Allow from 192.168.0.0/16
Allow from 192.168.0.0/255.255.0.0
# не пускать с такого ipv6-адреса
Deny from 2001:db8::a00:20ff:fea7:ccea

Правила проверяются до первого совпедния. Правило “совпало”, если правило соответствует информации о клиенте. Если правило совпало в цепочке allow - доступ разрешается, если в цепочке deny - запрещается.