Guía paso a paso para activar la recepción de la IP final en Apache cuando estás detrás de un proxy, modificando los registros de logs y activando el módulo mod_remoteip
. Esto se aplicará globalmente a través del archivo apache2.conf
:
Paso 1: Habilitar el módulo mod_remoteip
- Abre una terminal en tu servidor.
- Ejecuta el siguiente comando para habilitar el módulo
mod_remoteip
:sudo a2enmod remoteip
- Reinicia Apache para cargar el módulo:
sudo systemctl restart apache2
Paso 2: Configurar el archivo apache2.conf
- Abre el archivo de configuración principal de Apache:
sudo nano /etc/apache2/apache2.conf
- Añade las siguientes directivas al final del archivo para configurar
mod_remoteip
:# Configuración para obtener la IP real del cliente final
RemoteIPHeader X-Forwarded-For
RemoteIPTrustedProxy 192.168.1.1 10.0.0.1 # Sustituye por las IPs de tus proxies confiables
RemoteIPProxyProtocol On
# Redefinir los formatos de logs para registrar la IP real del cliente
LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%v:%p %a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
RemoteIPHeader
: Especifica el encabezado HTTP que contiene la IP original del cliente (usualmenteX-Forwarded-For
).RemoteIPTrustedProxy
: Define las IPs de los proxies confiables. Sustituye las IPs por las de tu red. (Esto es opcional)RemoteIPProxyProtocol On
: Habilita el uso del protocolo de proxy remoto.
Paso 3: Verificar la configuración de logs
Si deseas que la configuración de logs se aplique globalmente:
- Busca en el archivo
apache2.conf
las líneas relacionadas conLogFormat
yCustomLog
. - Modifica o reemplaza las directivas existentes para usar el nuevo formato
combined
ovhost_combined
que incluye%a
(la IP real del cliente):CustomLog ${APACHE_LOG_DIR}/access.log combined
Esta linea también podemos encontrarla en los virtual hosts que tengamos configurados, pero solo definirlo en uno de los dos sitios.
Paso 4: Reiniciar Apache
Aplica los cambios reiniciando Apache:
sudo systemctl restart apache2
Paso 5: Verificar la configuración
- Realiza una solicitud HTTP desde un cliente detrás del proxy.
- Revisa los registros de acceso para confirmar que ahora se registra la IP real del cliente:
sudo tail -f /var/log/apache2/access.log
Deberías ver la IP real del cliente registrada en lugar de la IP del proxy.
Con estos pasos, la configuración estará habilitada globalmente en tu servidor Apache, independientemente de los hosts virtuales configurados.