Сервер Apache2 (за Zyxel USG 100 NAT/Firewall) с vhost не регистрирует реальные IP-адреса клиентов

Сервер Apache2 (за Zyxel USG 100 NAT/Firewall) с vhost не регистрирует реальные IP-адреса клиентов

РЕШЕНО

Чтобы разрешить NAT Zyxel USG 100 пересылать нетронутые пакеты на мой веб-сервер, я отредактировал политику маршрутизации Zyxel.

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

Я просто изменил опцию «Преобразование адресов» с «исходящий-интерфейс» на «нет».

Теперь Apache регистрирует реальные внешние IP-адреса клиентов.


РЕШЕНО

Доброе утро, друзья.

сегодня я столкнулся с проблемой правильной регистрации клиентских запросов на моем корпоративном веб-сервере Apache2

Схема сети:

////////////    _                      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  / 
                         ++

Когда кто-то (из Интернета или моей частной сети) запрашивает страницу на моем публичном ip 11.11.11.11 на порту 80, мой веб-сервер отвечает на это правильно. Но когда я хочу проверить access.log моего веб-сервера, я вижу только мой маршрутизатор Zyxel ip 192.168.1.1.

Я предполагаю, что возникла проблема с NAT. Похоже, Zyxel подменяет свой IP-адрес в качестве SRC IP-пакетов, поступающих на мой веб-сервер.

Что мне нужно сделать, чтобы получить правильно зарегистрированные веб-запросы с публичными клиентскими IP-адресами? Маршрутизатор — Zyxel USG 100

это мои конфигурации журнала 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

это моя конфигурация журнала vhost

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

Спасибо

решение1

%{X-ClientSide}i может быть тем, что вы хотите добавить в свой формат журнала, чтобы получить удаленный адрес клиента.

Связанный контент