Назад | Перейти на главную страницу

httpd access log, ip logged - это обратный прокси, как найти настоящий прокси

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

Настройка такая

www.abc.com -> reversed proxy to my server 123.123.123.123 

Есть ли способ настроить журнал доступа http для отслеживания фактического входящего IP-адреса за обратным прокси-сервером?

Вы ищете X-Forwarded-For заголовок. Любой достойный прокси добавит этот заголовок в HTTP-запросы, которые он пересылает.

Если весь ваш сайт находится за этим прокси, вам необходимо найти соответствующий LogFormat для него, что обычно выглядит так:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

и добавьте к нему заголовок (или замените %h который будет вашим обратным прокси-сервером) вот так:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

Если вы не хотите переопределять combined формат журнала, затем создайте свой:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined_proxy
CustomLog /path/to/logfile.log combined_proxy

%{<header>}i это способ добавить любой другой заголовок запроса в файлы журнала.

Примечание: Этот заголовок не всегда будет одним IP-адресом. Если запрос прошел более чем через один прокси, вы получите список в форме, разделенный запятыми: client, proxy1, proxy2; вам может потребоваться обновить скрипты или парсеры журналов, чтобы учесть это.

Да, есть.

Для текущей версии Apache: mod_rpaf
Для всего, что было позже, чем ветка 2.3: mod_remoteip

Оба они заменят REMOTE_ADDR переменная в запущенном процессе Apache с последним IP из входящего X-Forwarded-For заголовок с любого доверенного обратного прокси. Этот IP-адрес также будет занесен в ваши стандартные журналы Apache без необходимости их изменения.

Эта переменная также будет доступна вашему PHP-коду как $_SERVER['REMOTE_ADDR'] где обычно находится удаленный IP-адрес.

Единственная конфигурация, которая требуется для этих модулей, - это предоставить им список доверенных обратных прокси.

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