Log de apache con soporte para obtener las ip vía proxys

A continuación se muestran las líneas que deberían añadirse al archivo de configuración de apache para capturar correctamente las direcciones IP de las visitas de un web, independientemente de si acceden directamente o a través de un proxy como el de telefónica.

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined 
LogFormat "%{Client-ip}i %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" proxy:%h" proxy
SetEnvIf Client-ip . client-ip-request
CustomLog /var/log/apache/access.log combined env=!client-ip-request 
CustomLog /var/log/apache/access.log proxy env=client-ip-request

Las dos primeras líneas sirven para definir dos formatos de log diferentes, el combined y el proxy. El combined es el formato habitual, y el proxy lo que hace es obtener la dirección real del cliente, y poner la del proxy al final.

Con la tercera línea definimos una variable de entorno que nos indica si la visita accede directamente o a través de un proxy. Con las últimas dos líneas indicamos que formato de entrada de log utilizar en función de la variable establecida, así como la ubicación del log sobre el que se escribe, que debe ser el mismo en ambos casos.

De esta forma hemos conseguido registrar todas las visitas en el log access_log y disponer de la dirección ip real de cada visita, de forma que este log podríamos analizarlo con herramientas como Urchin.

A partir de este punto podemos aplicar esta técnica a servidores con múltiples webs alojados, para lo cual sería suficiente únicamente con tomar las dos últimas líneas y aplicárselas a cada web.

Referencias:

Twitter Digg Delicious Stumbleupon Technorati Facebook Email

2 Respuestas para “Log de apache con soporte para obtener las ip vía proxys”

  1. Creo que wordpress eliminó las diagonales que originalmente deben escapar ciertas comillas…

    Así quedaría ya escapado:

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

    LogFormat “%{Client-ip}i %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” proxy:%h” proxy

    Saludos

Trackbacks/Pingbacks

  1. awstasts.pl Saltar un proxy | hilpers - 20. Ene, 2009

    […] Re: awstasts.pl Saltar un proxy El sáb, 12-05-2007 a las 06:12 +0200, Carlos Luis Sánchez Bocanegra escribió: > Hola lista, un saludo, estoy interesado en saber como saltar un proxy para > obtener los datos reales en el gestor de estadísticas awstats.pl. Gracias por > adelantado. Si entiendo bien, desde awstats no puedes hacer eso. 1) awstasts lee los logs del httpd. 2) en los logs del httpd, lee los datos que corresponden a una petición desde un proxy. …. ¿como narices va a saber awstats, quien narices pidió una página, tras un proxy el día tal a tal hora? (porque eso es lo único que lee del log) solo sabrá que el proxy con "tal" ip, pidió la página. Lo más que puedes hacer es poner el LogLevel en debug, a ver si así pillas más información o mirar la documentación de LogFormat, a ver si añadiendo algún campo puedes sacar algo. O googlear un poco: http://www.eslomas.com/index.php/arc…ip-via-proxys/ Saludos — To UNSUBSCRIBE, email to debian-user-spanish-REQUEST with a subject of "unsubscribe". Trouble? Contact listmaster « Volver un paquete a la version del DVD de Etch | por que es mas seguro ssh sin passwords? » […]