[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

consulta X-Forwarded-For de Apache



Buenos días,
Estoy con un problema puntual en Apache, tengo un servidor Apache detrás de un balanceador,
para obtener la ip real del cliente he configurado X-Forwarded-For, pero a veces registra el log dos ip's

35.195.xxx.xxx, 35.195.xxx.xxx - [06/Jun/2020:11:50:14 +0200] "POST /Aplicación/web HTTP/1.1" 200 405 "-" "Go-http-client/1.1" 

En el ejemplo anterior son la misma otras veces son diferentes.
Buscando por internet localizo esto:
X-Forwarded-For: <client>, <proxy1>, <proxy2>
<cliente>
La dirección IP del cliente <proxy1>, <proxy2>
Si una solicitud pasa por varios proxies, las direcciones IP de cada proxy se listan en forma sucesiva.
Esto significa que la IP de más a la derecha es la IP del proxy más reciente, y la IP de más a la izquierda es la IP del cliente originador.

https://developer.mozilla.org/es/docs/Web/HTTP/Headers/X-Forwarded-For

Localizado donde está el problema, esa ip de la derecha es un proxy por el que pasa pero en el log necesito que sólo registre la del cliente final, la de la izquierda.
He probado varios escenarios pero no me funcionan:
1) Con remoteip añadir ese servidor a un listado (sólo como prueba porque no es un servidor confiable)
https://www.globo.tech/learning-center/x-forwarded-for-ip-apache-web-server/

2)Por último he probado con SetEnvInf
Hay varios cambios que va a querer hacer en el formato predeterminado para registrar la dirección ip del cliente X-Forwarded-For o la dirección ip real del cliente si el encabezado X-Forwarded-For no existe.
Esos cambios se indican a continuación:
En apache.conf
1 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
2 LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" proxy
3 SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" forwarded
En el virtualhost:
4 CustomLog "logs/access_log" combined env=!forwarded
5 CustomLog "logs/access_log" proxy env=forwarded
https://www.techstacks.com/howto/log-client-ip-and-xforwardedfor-ip-in-apache.html

Dejo los enlaces consultados que he aplicado, he consultado otros tantos pero por no enmarañar el hilo.
¿Se os ocurre alguna idea? Normalmente registra sólo una ip del cliente pero dos o tres clientes pasan por un proxy y registra dos ip' s.

Muchas gracias, un saludo.

--
/m.a.

Reply to: