Я настраивал OpenVPN, и все стандартные руководства, которым я следую, предлагают настроить iptables
чтобы VPN-сервер выполнял NAT на VPN-клиентах:
iptables -t nat -A POSTROUTING -s *vpn-ip-range* -o eth0 -j MASQUERADE
Это прекрасно работает. Однако из-за NAT все журналы на других наших внутренних машинах сообщают о трафике, поступающем с IP-адреса сервера VPN, а не с IP-адреса клиента.
Я хотел бы удалить NAT и использовать IP-адрес клиента по всей сети (в целях аудита). Я уже сделал следующее:
10.0.0.0/8
)Последний шаг - обновление iptables
. Вот где я не могу заставить его работать.
Сетевая карта есть eth0
и весь трафик OpenVPN включен tun0
. Все, что я хочу сделать, это чтобы VPN-сервер перенаправлял трафик между этими интерфейсами, когда он связан с 10.0.0.0/8
трафик.
Может ли кто-нибудь подсказать, как я бы это сделал?
Мне удалось это решить. Хотя я уже добавил net.ipv4.ip_forward=1
к /etc/sysctl.conf
(на что указывают большинство руководств), мне также нужно добавить net.ipv4.conf.all.proxy_arp=1
.
В iptables
тогда конфигурация просто должна разрешить весь трафик на обоих интерфейсах, и она работает!
Быстрый способ решения этой проблемы может заключаться в изменении того, как работает ведение журнала, чтобы он записывал значения $ http_x_forwarded_for, которые затем будут регистрировать фактический IP-адрес клиента.
Не уверен, что вы сможете изменить способ ведения журнала, но я надеюсь, что это поможет.