É possível ter 2 conexões VPN diferentes simultaneamente na mesma máquina? talvez em diferentes interfaces de rede?

4

Estou configurando um novo cluster no meu novo local de trabalho e ainda estou administrando outro cluster no meu último local de trabalho. Basicamente eu estou "copiando" a configuração do primeiro para configurar o novo.

Agora estou em casa, e gostaria de usar as duas conexões VPN simultaneamente em vez de uma após a outra para acessar os dois clusters ao mesmo tempo. Na minha opinião isso não é possível, mas talvez alguém tenha uma ideia?

Uma conexão VPN usa o OpenVPN e a segunda usa o cliente CISCO VPN. Ou talvez seja possível jogar com regras de rota para obter isso? Eu não sou muito experiente em redes.

Estou tentando usar route -n para tentar redefinir as regras para as diferentes subinterfaces. Aqui está o que eu recebo quando nenhuma VPN está ativa:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1        0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0

Agora, se eu ligar a VPN cisco (VPN1):

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

Se eu fizer o swicth no openVPN (VPN2):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.1.0.1      0.0.0.0         UG    0      0        0 eth0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.168.1.0     192.168.2.17    255.255.255.0   UG    0      0        0 tun0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
zzz.zzz.zz.zz   10.1.0.1        255.255.255.255 UGH   0      0        0 eth0

E agora, se eu ligar os dois (primeiro vpn2 e vpn1):

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         xxx.xxx.xxx.117 0.0.0.0         UG    0      0        0 cscotun0
10.1.0.0        0.0.0.0         255.255.255.0   U     1      0        0 eth0
xxx.xxx.xxx.0   0.0.0.0         255.255.255.0   U     0      0        0 cscotun0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
192.yy.yy.22    10.1.0.1        255.255.255.255 UGH   0      0        0 eth0
192.168.2.17    0.0.0.0         255.255.255.255 UH    0      0        0 tun0

Idealmente, todo o pedido para xxx.xxx.xxx.0 deve ir como quando somente VPN1 está ativo (cscotun0) e todos os pedidos para 192.168.2.0 devem passar por 192.168.2.17 (tun0) e o outro através de eth0. ..

Eu não estou acostumado a rotear e gostaria de receber ajuda.

EDITAR: inspirado pelas respostas que estou tentando jogar com o comando route para tentar configurar corretamente minha configuração.

para ficar mais claro, editei as tabelas de rotas acima para refletir o resultado do comando route -n , que é mais informativo. Também modifiquei meu roteador doméstico para que eu tenha 10.1.0.0 nm 255.255.255.0 ip em casa.

Se bem entendi, quando apenas a VPN2 (tun0) está ativa, ela usa o gateway de desfalecimento da minha casa (10.1.0.1) e define algumas novas rotas, diga-me se entendi errado:

192.168.1.0   192.168.2.17 -> this says "everything for 192.162.1.0 network (vpn2 network), then pass through official gateway 192.168.2.17 "
192.168.2.17  0.0.0.0 -> this says "everything for host 192.168.2.17, goes to default gateway  (0.0.0.0) " , which is currently pointing to my home rooter"
zzz.zzz.zz.zz 10.1.0.1 -> this says "everything for zzz.zzz.zz.zz . pass through my home router (10.1.0.1)

Quando eu ativo VPN1 sozinho, ele substitui o gateway padrão por seu próprio (xxx.xxx.xxx.53) e qualquer coisa é redirecionada para isso. É também por isso que não vejo a minha rede doméstica (se estiver certo).

Agora, vejo que quando eu alterno a VPN, o gateway padrão é redirecionado para o da VPN1 (xxx.xxx.xxx.53), e o que estou perguntando é: Como posso configurar regras para que:

  • tudo para 198.162.1.0 passa por 198.162.2.17
  • coisas para 198.162.2.17 passam por 10.1.0.1
  • coisas para xxx.xxx.xxx.0 passar por xxx.xxx.xxx.117
  • coisas para 10.1.0.0 passam para 10.1.0.1

Eu tentei jogar com route add e route del , mas estou mais ou menos tentando fazer as coisas por tentativa e erro, e gostaria de entender melhor o que devo fazer e se as regras que eu quero para aplicar aqui estão corretas ou basicamente estúpidas ...

EDIT 2: Seguindo a sugestão de MariusMatutiae eu acrescento aqui o resultado de ifconfig quando ambas as VPN estão ativadas:

cscotun0  Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:xxx.xxx.xxx.117  P-t-P:xxx.xxx.xxx.117  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1380  Metric:1
          RX packets:21 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:4007 (4.0 KB)  TX bytes:3789 (3.7 KB)

eth0      Link encap:Ethernet  HWaddr 00:21:cc:6b:3e:ae  
          inet addr:10.1.0.226  Bcast:10.1.0.255  Mask:255.255.255.0
          inet6 addr: fe80::221:ccff:fe6b:3eae/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29039 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:14287030 (14.2 MB)  TX bytes:5521200 (5.5 MB)
          Interrupt:20 Memory:f3a00000-f3a20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9928 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9928 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4962141 (4.9 MB)  TX bytes:4962141 (4.9 MB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.2.18  P-t-P:192.168.2.17  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:719 errors:0 dropped:0 overruns:0 frame:0
          TX packets:764 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:103523 (103.5 KB)  TX bytes:56000 (56.0 KB)

EDIT 3:

descritpion do que não funciona: depois que eu troco a VPN, não consigo acessar a VPN tun0; e se eu tentar ping algo fora de xxx.xxx.xxx.0 eu recebo ping: sendmsg: Operation not permitted .

Idealmente, gostaria de ter acesso a ambas as VPNs (se o DNS para redes VNP não funcionar, eu posso gerenciá-lo com IP direto, não um problema) e idealmente acesso a minha LAN local também ...

Infelizmente, não sou um especialista iptables suficiente para saber como fazer.

Obrigado antecipadamente

    
por Danduk82 31.01.2014 / 00:32

3 respostas

5

Você certamente pode usar várias VPNs simultaneamente. A principal questão em organizar isso é garantir que a tabela de roteamento esteja correta, porque todas as VPNs tentarão alterá-la sem assumir que há mais VPNs fazendo a mesma coisa.

Seu cenário é muito simples, porque você está basicamente usando VPNs para acessar LANs remotas, não para redirecionar todo o seu tráfego. A última configuração teria exigido uma configuração mais complexa, mas no seu caso podemos nos dar muito menos trabalho.

Uma pré-condição para que isso funcione é que todas as sub-redes sejam diferentes: a sua casa e seus dois locais de trabalho '.

Supondo que você já tenha organizado isso, você deve se certificar de que o arquivo de configuração do cliente para o OpenVPN não contenha a seguinte declaração

    redirect-gateway def1

e que o arquivo de configuração do servidor não contém a seguinte declaração:

   push "redirect-gateway def1 bypass-dhcp"

Como você só está interessado em trabalhar com duas VPNs, isso já resolve seu problema, porque, mesmo que a outra VPN pegue a rota padrão, haverá uma única rota padrão em sua tabela de roteamento e você estará pronto. / p>

No entanto, a Cisco VPN, por padrão, não captura a rota padrão. Então você deveria estar bem. Para verificar, certifique-se de que a saída de route -n contenha algumas linhas como a seguinte,

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.73.1    0.0.0.0         UG    0      0        0 eth0

onde 192.168.73.1 é o seu roteador padrão de origem (altere conforme necessário, se o roteador não for 192.168.73.1).

Esse problema teria sido muito mais divertido se você quisesse redirecionar todo o tráfego pelas duas VPNs simultaneamente (sim, isso pode ser feito).

Editar:

Você também pode usar o OpenVPN em diferentes interfaces de rede, se desejar. Como exemplo, você pode abrir uma interface virtual baseada em sua placa ethernet da seguinte forma,

   ip link add link eth0 mac0 address 56:61:4f:7c:77:db type macvlan
   ip link set mac0 up
   dhclient mac0

e agora verifique o endereço IP da interface virtual mac0 com

   ip addr show

Então, no seu arquivo de configuração do cliente openvpn , você pode introduzir a declaração

   local IP_address_of_mac0

e quando você se conecta ao seu servidor OpenVPN, a conexão estará vinculada somente à interface mac0 . Então, para acessar a LAN remota, você precisa se lembrar de vincular todos os aplicativos à mesma interface mac0 e ao seu endereço IP. Por exemplo, para acessar um pc via ssh desta forma, você terá que dizer:

  ssh -b IP_address_of_mac0 user@remote_LAN_pc

e assim por diante. Para ping , você deve usar

   ping -i IP_address_of_mac0 remote_LAN_pc
    
por 01.02.2014 / 12:01
1

É perfeitamente possível executar várias VPNs simultaneamente.

Eu vejo alguns problemas com sua configuração -

Dependendo do que você está tentando fazer, certifique-se de que o servidor VPN não publique (ou ignore ou use uma métrica mais baixa para a correta) rota padrão. Caso contrário, você tem VPN tentando encaminhar uns aos outros e quebrando. Claro, isso significa que você está usando VPNs para alcançar apenas redes / rotas específicas

O segundo problema que você pode ter (observe as redes duplicadas 192.168.1.0 com a máscara de rede 255.255.255.0) parece ser que ambas as redes que você está tentando acessar estão em 192.168.1.x. Isso é um problema, pois o kernel não sabe a que você está se referindo também. A solução correta é renumerar uma das redes para que ela fique em um bloco de rede diferente. (Pode haver hacks horríveis, horríveis, horríveis que você pode fazer com o iptables e hosts arquivos e outros truques para emular isso em seu sistema, mas é altamente especialista, frágil e não recomendado).

BTW, ao produzir tabelas de rotas, geralmente é melhor usar o comutador "-n" para mostrar IPs em vez de tentar resolver nomes de máquinas - nomes de máquinas não significam nada para nós !!!

    
por 31.01.2014 / 01:06
0

Que tal simplesmente configurar uma VM W7 no VirtualBox, e usando a segunda VPN via isso, então usando o compartilhamento de pasta bidirecional entre o host e convidado? Simplicidade. :)

    
por 23.06.2015 / 00:54