Registrar la ip real del cliente en Apache

Registrar la ip real del cliente en Apache.

Para lograr más velocidad y seguridad, es una practica común instalar nuestros servidores web apache detrás de un proxy de equilibrio de carga como Nginx o Haproxy (Haproxy Load Balancer a resucitado).

También es frecuente que el servidor Apache este instalado detrás de un proxy de almacenamiento caché, como Squid o un proxy del tipo BlueCoat (actualmente de Symantec),

Las practicas mencionadas anteriormente son perfectamente validas, incluso recomendadas. Pero tienen un problema, en los registros de Apache la dirección IP real del cliente se reemplaza por la dirección IP del proxy.

Para evitar este problema, Squid desarrolló un encabezado de solicitudes HTTP personalizado, se conoce como X-Forwards-For. Actualmente es el encabezado estándar que identifica el origen real de la IP de un cliente conectado a través de un proxy HTTP, o un balanceador de carga.

Esta cabecera depura las estadísticas, y genera contenido dependiente de la ubicación. La información generada se ofrece de forma publica al registro de Apache para ser publicada (en este tema existe una gran controversia en la comunidad, recuerda que hablamos de datos sensibles del usuario).

Nada es perfecto, X-Forwards-For, tampoco.

Bueno, parece que con este encabezado si registramos las IP de los clientes, pero ojo!!!, si haces peticiones directamente a tu Apache sin pasar por el proxy, no se registran. En este articulo vemos como registrar todas las ip reales de los clientes en Apache.

 

Registrar la ip real del cliente en Apache

Para lograr nuestro objetivo debemos editar el archivo httpd.conf. Dependiendo del linux que tengas instalado en el servidor su localización puede variar, vemos las dos rutas posibles.

sudo nano/etc/httpd/conf/httpd.conf

o
sudo nano/usr/local/apache2/httpd.conf

Ahora busca la siguiente linea:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

Ahora debes cambiar <%h>, por:
%{X-Forwarded-For}i

Modificar la cadena LogFormat en Apache

Modificar la cadena LogFormat en Apache

La cadena quedara de la siguiente forma:

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

Guarda el archivo y cierra el editor.

Como ultimo paso reiniciamos Apache.

sudo systemctl restart httpd

o

sudo systemctl restart apache2

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este articulo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales.

 

Agregar comentario