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  

Пункт 185. Модуль Apache mod_remoteip

Этот модуль используется для обработки пользовательского агента, инициировавшего запрос, как исходного пользовательского агента, определенного httpd для целей авторизации и ведения журнала, даже если этот пользовательский агент находится за балансировщиком нагрузки, внешним сервером или прокси-сервером.

Модуль переопределяет IP-адрес клиента для соединения с IP-адресом пользовательского агента, указанным в заголовке запроса, настроенном с помощью директивы RemoteIPHeader .

После замены в соответствии с инструкциями этот переопределенный IP-адрес пользовательского агента затем используется для mod_authz_host Require ip функции, сообщается mod_status и записывается строками формата mod_log_config %a и core %a . Базовый клиентский IP-адрес соединения доступен в %{c}a строке формата.

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

Удаленная обработка IP

Apache по умолчанию идентифицирует пользовательский агент со значением client_ip соединения, а соединения remote_host и remote_logname получаются из этого значения. Эти поля играют роль в аутентификации, авторизации и ведении журнала и других целях другими загружаемыми модулями.

mod_remoteip переопределяет IP-адрес клиента соединения с объявленным IP-адресом агента пользователя, предоставленным прокси-сервером или балансировщиком нагрузки, на время запроса. Балансировщик нагрузки может установить продолжительное постоянное соединение с сервером, и каждый запрос будет иметь правильный IP-адрес агента пользователя, даже если базовый IP-адрес клиента балансировщика нагрузки останется неизменным.

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

При переопределении IP-адреса клиента модуль сохраняет список промежуточных хостов в заметке remoteip-proxy-ip-list, которую mod_log_config можно записывать с использованием %{remoteip-proxy-ip-list}n токена формата. Если администратору нужно сохранить это как дополнительный заголовок, это же значение можно также записать как заголовок с помощью директивы RemoteIPProxiesHeader .

Сопоставленные адреса IPv4 поверх IPv6

Как и в случае с httpd в целом, любые сопоставленные адреса IPv4 поверх IPv6 записываются в их представлении IPv4.

Внутренние (частные) адреса

Все внутренние адреса блоков 10/8, 172.16/12, 192.168/16, 169.254/16 и 127/8 (и IPv6-адреса вне общедоступного блока 2000::/3) оцениваются mod_remoteip только тогда, когда внутренние (внутрисетевые) прокси- RemoteIPInternalProxy серверы зарегистрирован.

Директива RemoteIPHeader

Описание:Объявите поле заголовка, которое должно быть проанализировано для IP-адресов агента пользователя.
Синтаксис: RemoteIPHeader header-field
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль:mod_remoteip

Директива RemoteIPHeader срабатывает mod_remoteip для обработки значения указанного заголовка поля заголовка как IP-адреса агента пользователя или списка промежуточных IP-адресов агента пользователя в зависимости от дальнейшей настройки директив RemoteIPInternalProxy и RemoteIPTrustedProxy . Если эти другие директивы не используются, mod_remoteip будет доверять всем хостам, представляющим RemoteIPHeader значение IP.

Пример внутреннего (балансировщика нагрузки)

 RemoteIPHeader X-клиент-IP 

Пример прокси

 RemoteIPHeader X-Forwarded-For 


Директива RemoteIPInternalProxy

Описание:Объявите IP-адреса интрасети клиента, которым доверяют, для представления значения RemoteIPHeader.
Синтаксис: RemoteIPInternalProxy proxy-ip|proxy-ip/subnet|hostname ...
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль:mod_remoteip

Директива RemoteIPInternalProxy добавляет один или несколько адресов (или блоков адресов), которым можно доверять, поскольку они представляют действительное значение RemoteIPHeader для IP-адреса пользовательского агента. В отличие от RemoteIPTrustedProxy директивы, любой IP-адрес, представленный в этом заголовке, включая частные адреса интрасети, считается доверенным при передаче от этих прокси-серверов.

Пример внутреннего (балансировщика нагрузки)

 RemoteIPHeader X-клиент-IP
RemoteIPInternalProxy 10.0.2.0/24
Шлюз RemoteIPInternalProxy.localdomain 


Директива RemoteIPInternalProxyList

Описание:Объявите IP-адреса интрасети клиента, которым доверяют, для представления значения RemoteIPHeader.
Синтаксис: RemoteIPInternalProxyList filename
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль:mod_remoteip

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

Символ решетки ' # ' обозначает строку комментария, в противном случае каждая запись, разделенная пробелом или новой строкой, обрабатывается идентично директиве RemoteIPInternalProxy .

Пример внутреннего (балансировщика нагрузки)

 RemoteIPHeader X-клиент-IP
RemoteIPInternalProxyList conf/trusted-proxy.lst 

conf/trusted-proxy.lst содержимое

 # Наши внутренние доверенные прокси;
10.0.2.0/24 #Все в тестовой группе
gateway.localdomain # Внешний балансировщик 


Директива RemoteIPProxiesHeader

Описание:Объявить поле заголовка, которое будет записывать все промежуточные IP-адреса
Синтаксис: RemoteIPProxiesHeader HeaderFieldName
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль:mod_remoteip

Директива RemoteIPProxiesHeader указывает заголовок, в котором mod_remoteip будет собран список всех IP-адресов промежуточных клиентов, которым доверяют для разрешения IP-адреса пользовательского агента запроса. Обратите внимание, что промежуточные RemoteIPTrustedProxy адреса записываются в этот заголовок, а любые промежуточные RemoteIPInternalProxy адреса отбрасываются.

Пример

 RemoteIPHeader X-Forwarded-For
RemoteIPProxiesHeader X-Forwarded-By 


Директива RemoteIPTrustedProxy

Описание:Объявите IP-адреса интрасети клиента, которым доверяют, для представления значения RemoteIPHeader.
Синтаксис: RemoteIPTrustedProxy proxy-ip|proxy-ip/subnet|hostname ...
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль:mod_remoteip

Директива RemoteIPTrustedProxy добавляет один или несколько адресов (или блоков адресов), которым можно доверять, поскольку они представляют действительное значение RemoteIPHeader для IP-адреса пользовательского агента. В отличие от RemoteIPInternalProxy директивы, любой внутренний или частный IP-адрес, сообщаемый такими прокси-серверами, включая блоки 10/8, 172.16/12, 192.168/16, 169.254/16 и 127/8 (или за пределами общедоступного IPv6-блока 2000::/3). ) не являются доверенными в качестве IP-адреса агента пользователя и остаются в RemoteIPHeader значении заголовка.

Пример доверенного (балансировщика нагрузки)

 RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 10.0.2.16/28
RemoteIPTrustedProxy proxy.example.com 


Директива RemoteIPTrustedProxyList

Описание:Объявите IP-адреса интрасети клиента, которым доверяют, для представления значения RemoteIPHeader.
Синтаксис: RemoteIPTrustedProxyList filename
Контекст:конфигурация сервера, виртуальный хост
Положение дел:База
Модуль:mod_remoteip

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

Символ решетки ' # ' обозначает строку комментария, в противном случае каждая запись, разделенная пробелом или новой строкой, обрабатывается идентично директиве RemoteIPTrustedProxy .

Пример доверенного (балансировщика нагрузки)

 RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxyList conf/trusted-proxy.lst 

conf/trusted-proxy.lst содержимое

# Identified external proxies;
192.0.2.16/28 #wap phone group of proxies
proxy.isp.example.com #some well known ISP



 <         > 

Пункты:   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