Службы, работающие на том же хосте, что и OpenVPN, не получают трафик от VPN

Поэтому мы настраиваем и тестируем новые внутренние системы, используя Docker для развертывания OpenVPN, Jenkins и связывания всех на одном хосте. Мы хотим ограничить доступ только тем трафиком, который исходит от нашего VPN.

Для других наших внутренних систем (на разных хостах) это работает как положено. Мы можем настроить ограничение ufw на основе IP-адреса нашего VPN-сервера, и он работает как положено, то есть мы не можем получить доступ, когда не в сети VPN, и можем, когда в VPN.

Однако для служб, работающих в Docker на том же хосте, что и наш сервер OpenVPN, трафик никогда не поступает из VPN. Подключено или нет, оно всегда отображается с фактического IP-адреса удаленного (подключающегося) клиента.

OpenVPN настраивается с использованием популярного образа Docker OpenVPN. Мы используем значения по умолчанию, что означает, что весь трафик должен направляться через VPN-соединение.

Что я пропускаю / забываю?

1 ответ

Похоже, у вас есть правило маскарада /snat в цепочке nat/postrouting (edit: хоста vpn-сервера), которое преобразует IP-адреса источника из адреса клиента в адрес хоста VPN-сервера для трафика, связанного с другими хостами на сервере vpn боковая сторона.

Но цепочка пост-маршрутизации не будет затронута для трафика, предназначенного для хоста, на котором работает сервер vpn. Последней цепочкой будет фильтр / ввод. Это имеет место даже в том случае, если трафик от клиента поступает на хост, на котором запущен сервер vpn на его устройстве tun / tap для службы, которая прослушивает устройство eth0.

Если это так, самый простой способ справиться с этим - на стороне клиента, перехватывая / маскируя весь трафик, направляемый через vpn, на адрес tun / tap клиента.

Другие вопросы по тегам