Spec-Zone.ru › Apache HTTP Server

Модуль Apache mod_authz_host

Описание: Группировка правил авторизации на основе имени хоста или IP-адреса
Статус: Базовый
Идентификатор модуля: authz_host_module
Исходный файл: mod_authz_host.c
Совместимость: Провайдер forward-dns добавлен в версии 2.4.19

Краткое описание

Провайдеры авторизации, реализованные в mod_authz_host, регистрируются с помощью директивы Require. На эту директиву можно ссылаться в секциях <Directory>, <Files> или <Location>, а также в файлах .htaccess, чтобы управлять доступом к определённым частям сервера. Доступ можно контролировать на основе имени хоста или IP-адреса клиента.

Как правило, директивы ограничения доступа применяются ко всем методам доступа (GET, PUT, POST и т. д.). В большинстве случаев это желаемое поведение. Однако можно ограничить некоторые методы, оставив остальные без ограничений, поместив директивы в секцию <Limit>.

Директивы Require

Директива Require Apache используется на этапе авторизации, чтобы определить, разрешён или запрещён пользователю доступ к ресурсу. mod_authz_host расширяет типы авторизации типами ip, host, forward-dns и local. Можно использовать и другие типы авторизации, но для этого может потребоваться загрузить дополнительные модули авторизации.

Эти провайдеры авторизации определяют, каким хостам разрешён доступ к области сервера. Доступ можно контролировать по имени хоста, IP-адресу или диапазону IP-адресов.

Начиная с версии 2.4.8, в директивах require для хостов поддерживаются выражения.

Require ip

Провайдер ip позволяет управлять доступом к серверу на основе IP-адреса удалённого клиента. Если указано Require ip ip-address, запросу разрешается доступ, когда IP-адрес совпадает.

Полный IP-адрес:

Require ip 10.1.2.3
Require ip 192.168.1.104 192.168.1.205

IP-адрес хоста, которому разрешён доступ

Частичный IP-адрес:

Require ip 10.1
Require ip 10 172.20 192.168.2

Первые 1–3 байта IP-адреса для ограничения подсети.

Пара сеть/маска подсети:

Require ip 10.1.0.0/255.255.0.0

Сеть a.b.c.d и маска подсети w.x.y.z. Для более точного ограничения подсети.

Спецификация CIDR сеть/nnn:

Require ip 10.1.0.0/16

Аналогично предыдущему случаю, но маска подсети состоит из nnn старших битов, равных 1.

Обратите внимание, что три последних примера выше точно соответствуют одному и тому же набору хостов.

Адреса IPv6 и подсети IPv6 можно указать, как показано ниже:

Require ip 2001:db8::a00:20ff:fea7:ccea
Require ip 2001:db8:1:1::a
Require ip 2001:db8:2:1::/64
Require ip 2001:db8:3::/48

Примечание. Поскольку IP-адреса анализируются при запуске, выражения не вычисляются во время обработки запроса.

Require host

Провайдер host позволяет управлять доступом к серверу на основе имени хоста удалённого клиента. Если указано Require host host-name, запросу разрешается доступ, когда имя хоста совпадает.

(Частичное) доменное имя

Require host example.org
Require host .net example.edu

Доступ разрешён хостам, имена которых совпадают с этой строкой или оканчиваются на неё. Сопоставляются только полные компоненты, поэтому приведённый выше пример совпадёт с foo.example.org, но не с fooexample.org. Эта конфигурация заставит Apache выполнить двойной обратный поиск DNS для IP-адреса клиента независимо от значения директивы HostnameLookups. Сначала будет выполнен обратный поиск DNS по IP-адресу, чтобы найти связанное с ним имя хоста, а затем — прямой поиск по имени хоста, чтобы убедиться, что оно соответствует исходному IP-адресу. Доступ будет разрешён, только если прямой и обратный поиск DNS согласуются и имя хоста совпадает.

Require forward-dns

Провайдер forward-dns позволяет управлять доступом к серверу на основе простых имён хостов. Если указано Require forward-dns host-name, доступ разрешается для всех IP-адресов, соответствующих host-name.

В отличие от провайдера host, этот провайдер не использует обратный поиск DNS: он просто запрашивает в DNS имя хоста и разрешает доступ клиенту, если его IP-адрес совпадает. Поэтому он работает только с полными именами хостов, которые можно разрешить в DNS, но не с частичными доменными именами. Однако, поскольку обратный поиск DNS не используется, а запросы DNS выполняются во время обработки запроса (а не при запуске), этот провайдер работает с клиентами, использующими службу динамического DNS.

Require forward-dns dynamic.example.org

Клиенту, IP-адрес которого определён по имени dynamic.example.org, будет разрешён доступ.

Провайдер forward-dns добавлен в версии 2.4.19.

Require local

Провайдер local разрешает доступ к серверу, если выполняется хотя бы одно из следующих условий:

  • адрес клиента соответствует 127.0.0.0/8
  • адрес клиента — ::1
  • адреса клиента и сервера в соединении совпадают

Это позволяет удобным способом отбирать соединения, исходящие с локального хоста:

Require local

Примечание о безопасности

Если вы проксируете содержимое на свой сервер, имейте в виду, что адресом клиента будет адрес вашего прокси-сервера, а не адрес клиента. Поэтому использование директивы Require в этом контексте может не дать ожидаемого результата. Возможное решение этой проблемы описано в mod_remoteip.

© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_authz_host.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API