Как сохранить исходный IP-адрес?

Схема сети

Привет всем,

Может ли кто-нибудь помочь мне с каким-либо решением по этому поводу? вот настройка:

  • Клиент: 1.1.1.1
  • Публичный сервер: 2.2.2.2 (Digital Ocean)
  • pfSense: 3.3.3.3
  • ВЕБ-СЕРВЕР: 4.4.4.4

Публичный сервер (Linux) подключен к pfSense через IPSEC VPN и StrongSwan (Linux).

Настройка:

Общедоступный сервер имеет IPtables, порт которого пересылает HTTP (S) запрос на веб-сервер

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 4.4.4.4:80
-A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 4.4.4.4:443

Предполагаемый клиент 1.1.1.1 обращается к общедоступному серверу через HTTP, который пересылает запрос на WEBSERVER 4.4.4.4. Основываясь на журналах apache, я получаю IP-адрес общедоступного сервера 2.2.2.2, моя цель - вместо этого получить IP-адрес клиента 1.1.1.1?

Есть предложения? Я также пробовал использовать Haproxy, но получил тот же результат. есть ли способ получить IP-адрес клиента через IPsec VPN?

Большое спасибо!

0
задан 15 August 2017 в 11:40
1 ответ

Настройка NAT или VPN не должна влиять на регистрацию IP-адреса клиента.

Публичный сервер (обратный прокси-сервер Apache или Haproxy в вашем вопросе) будет передавать исходный IP-адрес клиента, используя заголовок X-Forwarded-For.
См .: https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#x-headers в качестве примера для Apache

. Если вы используете Apache, вам также может потребоваться установить / включите mod_remoteip
http://httpd.apache.org/docs/current/mod/mod_remoteip.html

и в своем формате журнала замените заголовок удаленного имени хоста % h на IP-адрес клиента запрос % a .
См. Mod_log_config.html # форматы

1
ответ дан 4 December 2019 в 16:10

Теги

Похожие вопросы