El servidor Apache2 (detrás de Zyxel USG 100 NAT/Firewall) con vhost no registra las direcciones IP de los clientes reales

El servidor Apache2 (detrás de Zyxel USG 100 NAT/Firewall) con vhost no registra las direcciones IP de los clientes reales

SOLUCIONADO

Para permitir que la NAT del Zyxel USG 100 reenvíe paquetes intactos a mi servidor web, edité la ruta de política del Zyxel.

Zyxel -> Configuration -> Network ->Routing -> Policy Route

Acabo de editar la opción "Traducción de direcciones" de "interfaz saliente" a "ninguna"

Ahora Apache está registrando direcciones IP verdaderas de clientes externos.


SOLUCIONADO

Buenos días compañeros

Hoy tengo un problema para registrar correctamente las solicitudes de los clientes en mi servidor web corporativo Apache2.

Esquema de red:

////////////    _                      WAN1   11.11.11.12
| INTERNET /  _/  ===> CISCO Router =======> first public ip ==> to corporate LAN
////////////                      || 
                                  || 
                                  || 
                                  || zyxel eth0 ip: 11.11.11.11
                                  || label: WAN2
                                  \/
              ZYXEL ROUTER   ___ eth0 _________________________________________________
                             |   ZYXEL                                                |
                             |   Gateway
                             |    ||                                                  |
                             |    ||                                                  |
                             |   |\/| FIREWALL (accept request from eth0/WAN2 on port |                  
                             |    ||            443/80 and forward them to LAN1)      |
                             |    ||                                                  |
                             |   |\/| NAT (forward request on 11.11.11.11:80 to       |
                             |    ||        web server on 192.168.1.10:80)            |
                             |____||__________________________________________________|
                                  *zyxel eth1 ip: 192.168.1.1, label: lan1*
                                  ||
                                  \|____________________
                                   |                    \   mysqlserver 192.168.1.20
                           ________|                    ++
  webserver 192.168.1.10  / 
                         ++

Cuando alguien (de Internet o de mi LAN privada) solicita una página a mi IP pública 11.11.11.11 en el puerto 80, mi servidor web responde correctamente. Pero cuando quiero verificar el acceso.log de mi servidor web, solo puedo ver la IP 192.168.1.1 de mi enrutador Zyxel registrada.

Supongo que hay un problema de NAT, parece que Zyxel sustituye su dirección IP como SRC de los paquetes IP que llegan a mi servidor web.

¿Qué tengo que hacer para obtener solicitudes web registradas correctamente con direcciones IP de clientes públicos? El enrutador es el Zyxel USG 100

estas son mis configuraciones de registro de Apache2 (apache2.log)

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

esta es mi configuración de registro de vhost

CustomLog /var/log/apache2/xyz.com/access.log combined

Gracias

Respuesta1

%{X-ClientSide}i puede ser lo que desee agregar a su formato de registro para obtener la dirección remota del cliente.

información relacionada