È possibile avere 2 connessioni VPN diverse contemporaneamente sulla stessa macchina? forse su diverse interfacce di rete?


5

Sto creando un nuovo cluster nel mio nuovo posto di lavoro e sto ancora amministrando un altro cluster nel mio ultimo posto di lavoro. Fondamentalmente sto "copiando" la configurazione del primo per impostare il nuovo.

Ora sono a casa e vorrei utilizzare entrambe le connessioni VPN contemporaneamente invece di uno dopo l'altro per accedere a entrambi i cluster contemporaneamente. Secondo me questo non è possibile, ma forse qualcuno ha un'idea?

Una connessione VPN utilizza OpenVPN e la seconda utilizza il client VPN CISCO. O forse è possibile giocare con le regole del percorso per ottenerlo? Non ho molta esperienza nel networking.

Sto cercando di usare route -n provare a ridefinire le regole per le diverse sottointerfacce. Ecco cosa ottengo quando nessuna VPN è attiva:

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

Ora Se accendo il cisco VPN (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 accendo 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 ora se accendo entrambi (prima vpn2 e poi 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, tutte le richieste per xxx.xxx.xxx.0 dovrebbero andare come quando solo VPN1 è attiva (cscotun0) e tutte le richieste per 192.168.2.0 dovrebbero passare attraverso 192.168.2.17 (tun0) e l'altra tramite eth0 ...

Non sono abituato al routing e apprezzerei qualsiasi aiuto.

MODIFICARE: ispirato alle risposte con cui sto provando a giocare route comando per provare a configurare correttamente la mia configurazione.

per essere più chiaro ho modificato le tabelle di percorso sopra per riflettere il risultato di route -n comando, che è più informativo. Ho anche modificato il mio router di casa in modo che io abbia 10.1.0.0 nm 255.255.255.0 indirizzi IP a casa.

Se capisco bene, quando solo VPN 2 (tun0) è attivo, usa il gateway predefinito di casa mia (10.1.0.1) e definisce alcuni nuovi percorsi, dimmi se ho capito male:

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 accendo solo VPN1, sostituisce il gateway predefinito con il proprio (xxx.xxx.xxx.53) e tutto viene reindirizzato a questo. Questo è anche il motivo per cui non riesco a vedere la mia rete domestica btw (se ho ragione).

Ora, vedo che quando accendo entrambe le VPN, il gateway predefinito viene reindirizzato a quello di VPN1 (xxx.xxx.xxx.53), e quello che sto chiedendo è: Come posso impostare le regole, in modo che:

  • tutto per 198.162.1.0 passa per 198.162.2.17
  • cose per 198.162.2.17 passare attraverso 10.1.0.1
  • cose per xxx.xxx.xxx.0 passano attraverso xxx.xxx.xxx.117
  • le cose per 10.1.0.0 passano a 10.1.0.1

Ho provato a giocare con route add e route del ma sto più o meno cercando di fare le cose per tentativi ed errori, e vorrei capire meglio cosa dovrei fare, e se le regole che voglio applicare qui sono corrette o fondamentalmente stupide ...

MODIFICA 2: Seguendo il suggerimento di MariusMatutiae appendo qui il risultato di ifconfig quando entrambe le VPN sono attive:

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)

MODIFICA 3:

descrizione di ciò che non funziona: dopo aver acceso entrambe le VPN, non riesco a raggiungere VPN tun0; e se provo a ping qualcosa al di fuori di xxx.xxx.xxx.0 ping: sendmsg: Operation not permitted .

Idealmente, vorrei accedere a entrambe le VPN (se il DNS per le reti VNP non funziona, posso gestirlo con IP diretto, non un problema) e idealmente accesso anche alla mia lan locale ...

Sfortunatamente non ne ho abbastanza iptables esperto per capire come dovrei fare.

Grazie in anticipo


Ho 5 VPN collegate allo stesso tempo su uno dei miei sistemi che instradano / firewall il traffico tra le varie VPN. Tutto ciò che serve è semplicemente capire e configurare correttamente i percorsi.
Zoredache

Lo faccio sempre. Io uso due servizi a pagamento. Entrambi supportano OpenVPN
Ramhound

Grazie, potresti aggiungere una risposta per mostrarmene un paio route comandi per farlo per favore? Grazie
Danduk82

1
Cosa c'è di sbagliato nella tua configurazione in questo momento? Quale delle due sottoreti te non può raggiungere? Puoi raggiungere internet? Hai controllato che le tre sottoreti sono tutte diverse? Hai controllato che i file di configurazione del client e del server OpenVPn non contenere una dichiarazione che includa DEF1 ?
MariusMatutiae

dopo aver acceso cscotun0 non riesco a raggiungere il tun0 vpn. Ho controllato, no DEF1 in entrambe le configurazioni. Vedi la mia terza modifica.
Danduk82

Risposte:


6

Puoi certamente usare più VPN contemporaneamente. Il problema principale nell'organizzare ciò è assicurarsi che la tabella di routing sia corretta, poiché tutte le VPN proveranno a modificarla senza presupporre che ci siano più VPN che fanno la stessa cosa.

Il tuo scenario è molto semplice, perché in pratica stai utilizzando le VPN per accedere alle LAN remote, non per reindirizzare tutto il tuo traffico. L'ultima configurazione avrebbe richiesto una configurazione più complessa, ma nel tuo caso possiamo farcela con molto meno lavoro.

UN condizione indispensabile per far funzionare tutto ciò è che tutte le subnet sono diverse: la tua casa e le tue due postazioni di lavoro '.

Supponendo che tu abbia già organizzato questo, allora devi assicurarti che il tuo file di configurazione del client per OpenVPN lo faccia non contenere la seguente dichiarazione

    redirect-gateway def1

e che il file di configurazione del server lo fa non contenere la seguente dichiarazione:

   push "redirect-gateway def1 bypass-dhcp"

Dato che sei interessato solo a lavorare con due VPN, questo risolve già il tuo problema, perché, anche se l'altro VPN prende il percorso predefinito, nella tua tabella di routing ci sarà un'unica rotta predefinita, e il gioco è fatto.

Tuttavia, per impostazione predefinita, Cisco VPN non acquisisce la route predefinita. Quindi dovresti essere ok. Per verificare, assicurarsi che l'output di percorso -n contiene un paio di linee come la seguente,

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

dove 192.168.73.1 è il router predefinito di casa (cambiare se necessario, se il router non è 192.168.73.1).

Questo problema sarebbe stato molto più divertente se avessi voluto reindirizzare tutto il traffico attraverso entrambe le VPN simultaneamente (sì, può essere fatto).

Modificare:

Potresti anche usare OpenVPN su diverse interfacce di rete, se ti interessa. Ad esempio, puoi far apparire un'interfaccia virtuale basata sulla tua scheda ethernet come segue,

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

e ora controlla l'indirizzo IP dell'interfaccia virtuale MAC0 con

   ip addr show

Quindi, nel tuo openvpn file di configurazione del client, è possibile introdurre la dichiarazione

   local IP_address_of_mac0

e quando ci si connette al server OpenVPN, la connessione sarà vincolata solo all'interfaccia MAC0 . Quindi, per accedere alla LAN remota, è necessario ricordare di associare tutte le applicazioni alla stessa interfaccia MAC0 e al suo indirizzo IP. Ad esempio, per accedere a un PC tramite ssh in questo modo, dovrai dire:

  ssh -b IP_address_of_mac0 user@remote_LAN_pc

e così via. Per ping , dovresti usare

   ping -i IP_address_of_mac0 remote_LAN_pc

quando provo a eseguire il ping delle macchine al di fuori dell'intervallo VPN1, ottengo l'errore: ping: sendmsg: Operation not permitted cosa significa? (anche se si utilizza la sintassi -I ip_of_other_network_interface)
Danduk82

@ Danduk82 si prega di inviare ifconfig e tabella di routing. Aggiungilo al tuo post, lo rende molto più facile da leggere.
MariusMatutiae

OK, l'ho aggiunto. Grazie per il tuo aiuto
Danduk82

1

È completamente possibile eseguire più VPN contemporaneamente.

Vedo un paio di problemi con il tuo setup -

A seconda di cosa si sta tentando di fare, è necessario assicurarsi che il server VPN non pubblichi (o ignori o usi una metrica inferiore per il percorso predefinito corretto). Altrimenti, la VPN sta tentando di instradarsi e spezzarsi. Ovviamente, ciò implica che si stanno utilizzando VPN per raggiungere solo reti / percorsi specifici

Il secondo problema che potresti avere (notare la duplicazione delle reti 192.168.1.0 con netmask 255.255.255.0) sembra essere che entrambe le reti che stai cercando di raggiungere siano 192.168.1.x. Questo è un problema in quanto il kernel non sa a quale ti riferisci. La soluzione corretta è rinumerare una delle reti in modo che si trovi in ​​un altro blocco di rete. (Ci possono essere orribili, orribili, orribili hack che puoi fare con iptables e file host e altri trucchi per emularlo sul tuo sistema, ma è altamente specializzato, fragile e sconsigliato).

A proposito, quando si producono tabelle di routing, è generalmente meglio usare l'opzione "-n" in modo che mostrino gli IP piuttosto che cercare di risolvere i nomi delle macchine - i nomi delle macchine non significano nulla per noi !!!


Cosa intendi con Rinumerare una delle reti in modo che si trovi in ​​un altro blocco di rete ? Non posso modificare nulla sull'installazione di Cisco VPN, ma forse potrei cambiare alcune cose nel file di configurazione di openvpn per la seconda connessione.
Danduk82

Sono al lavoro ora, e vedo che l'indirizzo di firewalllocal è anche 192.168.1.1. È una brutta cosa?
Danduk82

1
Sì, è cattivo. Ogni dispositivo ha bisogno di un indirizzo IP univoco, altrimenti è faticosamente difficile farlo funzionare (non qualcosa da provare senza una forte conoscenza di TCP / IP.
davidgo

0

Che dire semplicemente impostando una VM W7 in VirtualBox e utilizzando la seconda VPN tramite quella, quindi utilizzando la condivisione bidirezionale delle cartelle tra host e guest? Semplicità. :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.