4

У меня есть служба VPN, за которую я плачу, и я хотел бы направить трафик для виртуальной машины (виртуальной коробки), а не трафик с хоста (linux).

Служба VPN использует openvpn. У меня есть куча файлов конфигурации, позволяющих мне подключаться к разным серверам. Я могу изменить тип интерфейса (Tun / Tap).

Из того, что я прочитал, кажется, что мне нужно создать мост между tap0 и vboxnet0 (интерфейс виртуального ящика только для хоста). Я попробовал несколько решений для этого, но, похоже, ничего не помогло. Боюсь, что некоторые iptables foo могут понадобиться, но я даже не знаю, с чего начать.

Любая помощь или даже подталкивание в правильном направлении будет очень цениться.

2 ответа2

1

Я предполагаю, что вы используете OpenVPN в конфигурации маршрутизации (устройство Tun не может использоваться в режиме моста). Когда OpenVPN находится в режиме моста, этого должно быть достаточно, чтобы подключить устройство к вашему мосту на стороне клиента.

В режиме маршрутизации вы должны решить, как настроить маршрутизацию, вы можете использовать NAT для своих виртуальных машин, а затем маршрутизировать трафик через vpn. Чтобы включить пересылку для всех интерфейсов:

sysctl net.ipv4.conf.all.forwarding=1

И настройте соответствующие правила iptable для разрешения перенаправленного трафика и включения NAT с использованием цели MASQUERADE :

iptables -A FORWARD -i vboxnet0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun0 -o vboxnet0 -j ACCEPT

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Наконец, вы можете использовать политику маршрутизации для маршрутизации всего вашего гостевого трафика через vpn:

# name routing table as vguest
echo 100 vguest >> /etc/iproute2/rt_tables

# use vguest routing table for traffic from 10.0.0.0/24 (guest network) 
ip rule add from 10.0.0.0/24 table vguest

# default route via openvpn gateway
ip route add default via 10.8.0.1 dev tun0 table vguest

# flush route cache
ip route flush cache

В качестве альтернативы вы можете настроить другого гостя для запуска openvpn или запуска openvpn в отдельном сетевом пространстве имен linux. NAT и пересылка могут быть выполнены, используя шаги, описанные выше.

1

Установите клиент OpenVPN на виртуальной машине.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .