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

Re: consulta X-Forwarded-For de Apache



El 2020-06-07 a las 18:03 +0200, miguel angel gonzalez escribió:

> 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.

No te recomendaría alterar los registros originales del servidor web, 
te pueden hacer falta. 

¿No sería más conveniente guardar la IP del cliente y la de los 
proxies, y procesar/filtrar después ese registro para que te muestre 
sólo la IP que quieres?

> He probado varios escenarios pero no me funcionan:

(...)

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

(...)

Apache doesn't log remoteIP when RemoteIPHeader X-Forwarded-For is 
present
<https://serverfault.com/questions/888151/apache-doesnt-log-remoteip-when
-remoteipheader-x-forwarded-for-is-present>

Apuntan a cambiar «%h» por «%a».

Pero con eso conseguirás que almacene todas las IP, entiendo que no es lo que buscas, 
pues sólo quieres una IP, la del cliente.

Sólo se me ocurre, pero no lo recomiendo, ver si el servidor web te 
permite manipular (filtrar) los registros que genera antes de que se 
guarden en el disco. Con cualquier aplicación de manipulación de textos 
(p. ej., awk) podrías recortar las IP que no quieras y quedarte con el bloque que 
necesites.

Saludos,

-- 
Camaleón 


Reply to: