Encaminhar o tráfego de VMs por VPN, mas não o tráfego de host

4

Eu tenho um serviço de VPN que eu pago e gostaria de rotear o tráfego para uma máquina virtual (virtual box), mas não o tráfego do host (linux).

O serviço VPN usa o openvpn. Eu tenho um monte de arquivos de configuração para me conectar a diferentes servidores. Eu posso mudar o tipo de interface (tun / tap).

Pelo que eu li, parece que preciso criar uma ponte entre tap0 e vboxnet0 (a interface virtualbox somente para host). Eu tentei algumas soluções para isso, mas nada parece ter funcionado. Temo que alguns iptables foo possam ser necessários, mas nem sei por onde começar com isso.

Qualquer ajuda ou até mesmo um estímulo na direção correta serão muito apreciados.

    
por lifesaspanner 15.07.2017 / 19:44

2 respostas

1

Suponho que você esteja usando o OpenVPN na configuração de roteamento (o dispositivo tun não pode ser usado com o modo de ponte). Quando o OpenVPN está em modo de ponte, deve ser o suficiente para conectar o dispositivo de toque à sua ponte no lado do cliente.

No modo de roteamento, você precisa decidir como configurar o roteamento. Você pode usar o NAT para suas máquinas virtuais e depois rotear o tráfego via vpn. Para habilitar o encaminhamento para todas as interfaces:

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

E configure regras de iptable relevantes para permitir o tráfego encaminhado e ativar o NAT usando MASQUERADE target:

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

Por fim, você pode usar o roteamento de políticas para rotear todos os seus convidados tráfego via 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

Como alternativa, você pode configurar outro convidado para executar o openvpn ou executar o openvpn em um namespace de rede linux separado. O NAT e o encaminhamento podem ser feitos usando etapas similares, conforme acima.

    
por 19.07.2017 / 03:03
1

Instale o cliente OpenVPN na máquina virtual.

    
por 18.07.2017 / 07:29