Saltar al contenido

Apache no registra IP remota cuando RemoteIPHeader X-Forwarded-For está presente

Estate atento porque en esta noticia vas a encontrar el resultado que buscas.

Solución:

Solución 1:

Restaure %a a ese formato si va a usar mod_remoteip.

En bugzilla, mod_remoteip completa %a mientras elimina de %X-Forwarded-Fori. Entonces, en un caso simple con un proxy confiable, %a mantendrá el valor usado para ver en X-Forwarded-For debido a mod_remoteip

Solución 2:

Capa de proxy (Nginx)

proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header        X-Real-IP       $remote_addr;

Capa de fondo (Apache)

# Log format config
LogFormat "%X-Forwarded-Fori %l %u %t "%r" %>s %b "%Refereri" "%User-Agenti"" common
SetEnvIf X-Forwarded-For "^.*..*..*..*" forwarded
CustomLog "logs/access_log" common env=forwarded

# Header config
RemoteIPHeader X-Real-IP
RemoteIPHeader X-Client-IP
RemoteIPInternalProxy 192.168.10.10 192.168.10.11

Descripción:

proxy_set_header – la directiva establece encabezados que nginx envía al backend; entonces, en este ejemplo, enviamos dos variables (a los encabezados): X-Forwarded-For y X-Real-IP

X-reenviado-para – en el lado del proxy, se debe configurar que este encabezado se pase a los backends y sea accesible desde su capa

X-Real-IP – no afecta las variables requeridas en la página web, pero lo dejamos habilitado para que el servidor Apache coloque la dirección del cliente en los registros (también debe configurar el formato del registro):

### X-Real-IP enabled
172.217.20.206 - - [03/Jun/2017:11:12:11 +0200] "GET /tls-check.php?9832 HTTP/1.0" 200 1409
### X-Real-IP disabled
172.16.21.11 - - [03/Jun/2017:15:12:49 +0200] "GET /tls-check.php?13266 HTTP/1.0" 200 1448

Rizo

:~$ curl -H Cache-Control: no-cache -ks https://example.com/tls-check.php?$RANDOM | grep "HTTP_X_FORWARDED_FOR|HTTP_X_REAL_IP|SERVER_ADDR|REMOTE_ADDR"
[HTTP_X_FORWARDED_FOR] => 172.217.20.206
[HTTP_X_REAL_IP] => 172.217.20.206
[SERVER_ADDR] => 192.168.10.100
[REMOTE_ADDR] => 192.168.10.10

tls_check.php

';
print_r($_SERVER);
echo '

';
exit;

?>

Agradecemos que quieras añadir valor a nuestra información colaborando tu experiencia en las explicaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *