follow_x_forwarded_for
TAG: follow_x_forwarded_for
Примечание: Этот тэг доступен только, если Squid скомилирован с опцией -DFOLLOW_X_FORWARDED_FOR
Этот тэг разрешает или запрещает заголовки X-Forwarded-For в исходном запросе.
Запросы могут пройти цепочку прокси серверов, прежде чем дойдут до нашего. Заголовок X-Forwarded-For содержит список IP адресов серверов этой цепи, разделенных точкой с запятой.
Если запрос пришел к нам, с некоторого хоста, мы будем смотреть заголовок X-Forwarded-For, чтобы узнать с какого хоста пришел запрос. Если заголовок X-Forwarded-For содержит несколько IP адресов и опция acl_uses_indirect_client включена, мы будем идти по этому списку снизу вверх до тех пор, пока не дойдем до адреса на котором запрещен заголовок X-Forwarded-For, либо до первого адреса в списке(в этом случае, первым в списке будет адрес с которого был отправлен запрос).
Если опция acl_uses_indirect_client выключена, то пройти по списку IP адресов заголовка, можно не более чем на один уровень.
Конечным результатом, будет IP адрес, который косвенно может считатся адресом клиента. Этот адрес может рассматриватся как Client Address(Адрес клиента) при использовании ACL, Delay pools и ведении журнала, на основе опций acl_uses_indirect_client, delay_pool_uses_indirect_client, log_uses_indirect_client.
=== СООБРАЖЕНИЯ БЕЗОПАСНОСТИ ===
Любой хост может записать некорректную информацию в заголовок X-Forwarded-For и Squid воспользуется этой ложной информацией при определении источника запроса. Это может привести к неправильной работе прокси ограничений на основе Client Source(Адрес клиента, Client Address) ACL.
Например:
acl localhost src 127.0.0.1
acl my_other_proxy srcdomain .proxy.example.com
follow_x_forwarded_for allow localhost
follow_x_forwarded_for allow my_other_proxy
По умолчанию:
follow_x_forwarded_for deny all