Apache. Документация на русском


Разделы:   1    2    3    4    5    6    7    8    9      10      11    12    13    14    15    16  

Раздел 10. Модули Апача

Пункты:   85    86    88    89    90    91    92    93    94      95      96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

 <         > 
  RU            EN  

Пункт 95. Модуль Apache mod_access_compat

Предоставленные директивы mod_access_compat используются в разделах <Directory> , <Files> и <Location> , а также .htaccess в файлах для управления доступом к определенным частям сервера. Доступом можно управлять на основе имени хоста клиента, IP-адреса или других характеристик запроса клиента, зафиксированных в переменных среды. Директивы Allow и Deny используются для указания того, каким клиентам разрешен или не разрешен доступ к серверу, в то время как Order директива устанавливает состояние доступа по умолчанию и настраивает взаимодействие директив Allow и Deny друг с другом.

Одновременно могут быть реализованы как ограничения доступа на основе хоста, так и аутентификация на основе пароля. В этом случае Satisfy директива используется для определения того, как взаимодействуют два набора ограничений.

Примечание

Директивы, предоставленные , mod_access_compat устарели mod_authz_host . Смешивание старых директив, таких как Order , Allow или Deny с новыми, например, Require технически возможно, но не рекомендуется. Этот модуль был создан для поддержки конфигураций, содержащих только старые директивы, для облегчения обновления до версии 2.4. Пожалуйста, ознакомьтесь с руководством по обновлению для получения дополнительной информации.

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

Объединение разделов конфигурации

Когда любая директива, предоставляемая этим модулем, используется в новом разделе конфигурации, никакие директивы, предоставляемые этим модулем, не наследуются от предыдущих разделов конфигурации.

Разрешить директиву

Описание:Контролирует, какие хосты могут получить доступ к области сервера
Синтаксис: Allow from all|host|env=[!]env-variable [host|env=[!]env-variable] ...
Контекст:каталог, .htaccess
Переопределить:Ограничение
Положение дел:Расширение
Модуль:mod_access_compat

Директива Allow влияет на то, какие хосты могут получить доступ к области сервера. Доступ можно контролировать по имени хоста, IP-адресу, диапазону IP-адресов или другим характеристикам клиентского запроса, зафиксированным в переменных среды.

Первым аргументом этой директивы всегда является from . Последующие аргументы могут принимать три различных формы. Если Allow from all указано, то всем хостам разрешен доступ, в соответствии с настройкой директив Deny и Order , как описано ниже. Чтобы разрешить доступ к серверу только определенным хостам или группам хостов, хост можно указать в любом из следующих форматов:

(частично) доменное имя
 Разрешить с example.org
Разрешить из .net example.edu 

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

Полный IP-адрес
 Разрешить с 10.1.2.3
Разрешить от 192.168.1.104 192.168.1.205 

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

Частичный IP-адрес
 Разрешить с 10.1
Разрешить от 10 172,20 192 168,2 

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

Пара сеть/сетевая маска
 Разрешить с 10.1.0.0/255.255.0.0 

Сеть abcd и сетевая маска wxyz Для более точного ограничения подсети.

Спецификация network/nnn CIDR
 Разрешить с 10.1.0.0/16 

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

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

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

 Разрешить с 2001:db8::a00:20ff:fea7:ccea
Разрешить с 2001:db8::a00:20ff:fea7:ccea/10 

Третий формат аргументов директивы Allow позволяет управлять доступом к серверу на основе существования переменной среды. Когда указано, запросу разрешается доступ, если существует переменная окружения env-variable . Если указано, то запросу разрешается доступ, если переменная окружения env-variable не существует. Сервер предоставляет возможность гибко задавать переменные среды на основе характеристик клиентского запроса с помощью директив, предоставляемых . Следовательно, эту директиву можно использовать для разрешения доступа на основе таких факторов, как клиенты (тип браузера), или другие поля заголовка HTTP-запроса. Allow from env=env-variable Allow from env=!env-variable mod_setenvif User-Agent Referer

 SetEnvIf User-Agent ^KnockKnock/2\.0 let_me_in
<Каталог "/docroot">
 Порядок Запретить, Разрешить
 Запретить от всех
 Разрешить из env=let_me_in
</Каталог> 

В этом случае браузерам со строкой пользовательского агента, начинающейся с, KnockKnock/2.0 будет разрешен доступ, а всем остальным будет отказано.

Объединение разделов конфигурации

Когда любая директива, предоставляемая этим модулем, используется в новом разделе конфигурации, никакие директивы, предоставляемые этим модулем, не наследуются от предыдущих разделов конфигурации.

Запретить директиву

Описание:Контролирует, каким хостам запрещен доступ к серверу
Синтаксис: Deny from all|host|env=[!]env-variable [host|env=[!]env-variable] ...
Контекст:каталог, .htaccess
Переопределить:Ограничение
Положение дел:Расширение
Модуль:mod_access_compat

Эта директива позволяет ограничить доступ к серверу на основе имени хоста, IP-адреса или переменных среды. Аргументы директивы Deny идентичны аргументам директивы Allow .



Директива о порядке

Описание:Управляет состоянием доступа по умолчанию и порядком, в котором оцениваются Allow и . Deny
Синтаксис: Order ordering
По умолчанию: Order Deny,Allow
Контекст:каталог, .htaccess
Переопределить:Ограничение
Положение дел:Расширение
Модуль:mod_access_compat

Директива Order вместе с Allow директивами Deny и управляет трехпроходной системой контроля доступа. Первый проход обрабатывает либо все Allow , либо все Deny директивы, как указано в Order директиве. Второй проход анализирует остальные директивы ( Deny или Allow ). Третий проход применяется ко всем запросам, которые не соответствуют ни одному из первых двух.

Обратите внимание, что обрабатываются все директивы Allow и , в отличие от типичного брандмауэра, где используется только первое совпадение. Deny Последнее совпадение является эффективным (также в отличие от типичного брандмауэра). Кроме того, порядок, в котором строки появляются в файлах конфигурации, не имеет значения — все Allow строки обрабатываются как одна группа, все Deny строки рассматриваются как другая, а состояние по умолчанию рассматривается само по себе.

Заказ является одним из:

Allow,Deny
Сначала Allow оцениваются все директивы; хотя бы одно должно совпадать, иначе запрос будет отклонен. Далее Deny оцениваются все директивы. Если какие-либо совпадают, запрос отклоняется. Наконец, любые запросы, которые не соответствуют директиве Allow или, Deny по умолчанию отклоняются.
Deny,Allow
Сначала Deny оцениваются все директивы; если какое-либо совпадение, запрос отклоняется , если он также не соответствует Allow директиве. Любые запросы, которые не соответствуют каким Allow -либо Deny директивам или, разрешены.
Mutual-failure
Этот порядок имеет такой же эффект, как Order Allow,Deny и устарел в его пользу.

Ключевые слова могут быть разделены только запятой; между ними не допускается пробел .

Соответствовать Разрешить, Запретить результат Запретить, Разрешить результат
Только совпадение разрешено Запрос разрешен Запрос разрешен
Соответствовать только отказу Запрос отклонен Запрос отклонен
Не совпадает По умолчанию вторая директива: Denied По умолчанию вторая директива: разрешено
Совпадение как Разрешить, так и Запретить Финальный контроль матча: Отказано Финальный контроль матча: разрешено

В следующем примере всем хостам в домене example.org разрешен доступ; всем остальным хостам отказано в доступе.

 Порядок Запретить, Разрешить
Запретить от всех
Разрешить с example.org 

В следующем примере всем хостам в домене example.org разрешен доступ, за исключением хостов в поддомене foo.example.org, которым доступ запрещен. Всем хостам, не входящим в домен example.org, отказано в доступе, потому что состояние по умолчанию — Deny доступ к серверу.

 Заказать Разрешить, Запретить
Разрешить с example.org
Отклонить от foo.example.org 

С другой стороны, если Order в последнем примере изменить на Deny,Allow , всем хостам будет разрешен доступ. Это происходит из-за того, что независимо от фактического порядка следования директив в конфигурационном файле директивы Allow from example.org будут оцениваться последними и переопределять директивы Deny from foo.example.org . Всем хостам, не входящим в example.org домен, также будет разрешен доступ, поскольку состояние по умолчанию — Allow .

Наличие директивы Order может повлиять на доступ к части сервера даже при отсутствии сопутствующих Allow и Deny директив из-за ее влияния на состояние доступа по умолчанию. Например,

 <Каталог "/www">
 Заказать Разрешить, Запретить
</Каталог> 

будет запрещать любой доступ к /www каталогу, поскольку состояние доступа по умолчанию установлено на Deny .

Директива Order управляет порядком обработки директивы доступа только в рамках каждой фазы обработки конфигурации сервера. Это подразумевает, например, что директива Allow or Deny , встречающаяся в <Location> разделе, всегда будет оцениваться после директивы Allow or Deny , встречающейся в <Directory> разделе или .htaccess файле, независимо от установки директивы Order . Дополнительные сведения об объединении разделов конфигурации см. в документации о том, как работают разделы «Каталог», «Местоположение» и «Файлы».

Объединение разделов конфигурации

Когда любая директива, предоставляемая этим модулем, используется в новом разделе конфигурации, никакие директивы, предоставляемые этим модулем, не наследуются от предыдущих разделов конфигурации.

Удовлетворить директиву

Описание:Взаимодействие между контролем доступа на уровне хоста и аутентификацией пользователя
Синтаксис: Satisfy Any|All
По умолчанию: Satisfy All
Контекст:каталог, .htaccess
Переопределить:Аутконфиг
Положение дел:Расширение
Модуль:mod_access_compat
Совместимость:Под влиянием <Limit> и <LimitExcept> в версии 2.0.51 и выше

Политика доступа, если используется и то Allow , и другое Require . Параметр может быть либо , All либо Any . Эта директива полезна только в том случае, если доступ к определенной области ограничен как именем пользователя/паролем, так и адресом хоста клиента. В этом случае поведение по умолчанию ( All ) требует, чтобы клиент прошел ограничение доступа к адресу и ввел допустимое имя пользователя и пароль. С этой Any опцией клиенту будет предоставлен доступ, если он либо пройдет ограничение хоста, либо введет действительное имя пользователя и пароль. Это можно использовать для ограничения области паролем, но для допуска клиентов с определенных адресов без запроса пароля.

Например, если вы хотите, чтобы люди в вашей сети имели неограниченный доступ к части вашего веб-сайта, но требовали, чтобы люди за пределами вашей сети вводили пароль, вы могли бы использовать конфигурацию, подобную следующей:

 Требовать действительного пользователя
Разрешить с 192.168.1
Удовлетворить любой 

Еще одно частое использование директивы Satisfy — ослабление ограничений доступа к подкаталогу:

 <Каталог "/var/www/private">
 Требовать действительного пользователя
</Каталог>
<Каталог "/var/www/private/public">
 Разрешить от всех
 Удовлетворить любой
</Каталог> 

В приведенном выше примере аутентификация потребуется для /var/www/private каталога, но не для /var/www/private/public каталога.

Начиная с версии 2.0.51 Satisfy директивы могут быть ограничены конкретными методами с помощью разделов <Limit> и <LimitExcept> .

Объединение разделов конфигурации

Когда любая директива, предоставляемая этим модулем, используется в новом разделе конфигурации, никакие директивы, предоставляемые этим модулем, не наследуются от предыдущих разделов конфигурации.

Смотрите также

  • Allow
  • Require


 <         > 

Пункты:   85    86    88    89    90    91    92    93    94      95      96    97    98    99    100    101    102    103    104    105    106    107    108    109    110    111    112    113    114    115    116    117    118    119    120    121    122    123    124    125    126    127    128    129    130    131    132    133    134    135    136    137    138    139    140    141    142    143    144    145    146    147    148    149    150    151    152    153    154    155    156    157    158    159    160    161    163    164    165    166    167    168    170    171    172    173    174    175    176    177    178    179    180    181    182    183    184    185    186    187    188    189    190    191    192    193    194    195    196    197    198    199    200    201    203    204    205    206    207    208    209    210    211    212    213  

Рейтинг@Mail.ru