Привет всем,
Может ли кто-нибудь помочь мне с каким-либо решением по этому поводу? вот настройка:
Публичный сервер (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?
Большое спасибо!
Настройка 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 # форматы