Вероятно, это вопрос новичка, но ...
Я использую Ubuntu 18.04.3 LTS, и у меня есть VPN , который я хочу использовать. для нескольких приложений. Я проверил namespaced-openvpn
, и он работает! Предостережение: я не могу подключиться к этому приложению локально (в целях управления).
Есть ли способ перенаправить определенный порт внутри VPN-туннеля на локальный хост без использования VPN-туннеля для каких-либо других целей и, таким образом, утечки слишком большого количества информации?
Что я уже умею сделать:
namespaced-openvpn
-script: sudo./ namespaced-openvpn --namespace vpn --config /etc/openvpn/vpn-xxxxx.ovpn
sudo ip netns exec vpn application
Чего я хочу достичь:
1234
) с реального локального хоста ( enp3s0
Ethernet-адаптер) Хорошо. Кажется, что этот вопрос слишком сложен для того, чтобы кто-то на самом деле мог ответить, или, возможно, на него уже был дан ответ, и никто не позаботился ответить.
Как бы то ни было: я работал над этим в течение другого дня и решил, что, поскольку меня интересует только один порт для веб-интерфейса приложения, я также могу использовать socat
. Так я и сделал.
После создания соединения namespaced-openvpn и запуска приложения внутри этого сетевого пространства имен я выполнил следующую команду в выделенном терминале:
sudo socat tcp-listen:PORT-TO-FORWARD-TO,fork,reuseaddr exec:'ip netns exec vpn socat STDIO tcp-connect\:127.0.0.1\:PORT-TO-LISTEN-TO',nofork
Примечания:
PORT-TO-FORWARD-TO
- это порт что я хочу, чтобы порт был перенаправлен (в корневом сетевом пространстве имен) PORT-TO-LISTEN-TO
- это порт приложения, которое я хочу разместить в корневом пространстве имен 127.0. 0.1
Мне пришлось использовать фактический IP-адрес localhost (а не localhost
или имя, потому что оно, похоже, не разрешается должным образом) :
) внутри одинарных кавычек Что осталось сделать: