Привет всем,
Может ли кто-нибудь помочь мне с каким-либо решением по этому поводу? вот настройка:
Публичный сервер (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
и в вашем формате журнала замените заголовок Remote hostname%h
с клиентским IP-адресом запроса %a
.
См. Mod_log_config.html # форматы.