Est-il possible d'avoir 2 connexions VPN différentes simultanément sur le même ordinateur? peut-être sur différentes interfaces réseau?

5

Je suis en train de mettre en place un nouveau cluster dans mon nouveau lieu de travail et je gère toujours un autre cluster dans mon dernier lieu de travail. En gros, je "copie" la configuration du premier pour installer le nouveau.

À présent, je suis chez moi et je voudrais utiliser les deux connexions VPN simultanément plutôt que l' une après l'autre pour accéder aux deux clusters en même temps. A mon avis, ce n'est pas possible, mais peut-être que quelqu'un a une idée?

Une connexion VPN utilise OpenVPN et la seconde utilise un client VPN CISCO. Ou peut-être est-il possible de jouer avec les règles de route pour l'obtenir? Je n'ai pas beaucoup d'expérience dans la mise en réseau.

J'essaie d'utiliser route -npour essayer de redéfinir les règles pour les différentes sous-interfaces. Voici ce que je reçois quand aucun VPN n'est actif:

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

Maintenant, si j'allume le 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

Si je swicth sur l'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

Et maintenant, si j'allume les deux (d'abord vpn2 et ensuite 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

Idéalement, toutes les requêtes pour xxx.xxx.xxx.0 devraient être comme si seul VPN1 était actif (cscotun0) et que toutes les requêtes pour 192.168.2.0 devaient passer par 192.168.2.17 (tun0) et l'autre par eth0 ...

Je ne suis pas habitué au routage et apprécierais toute aide.

EDIT: inspiré par les réponses, j'essaie de jouer avec la routecommande pour essayer de configurer correctement ma configuration.

pour être plus clair, j'ai modifié les tables de routage ci-dessus afin de refléter le résultat de la route -ncommande, ce qui est plus informatif. J'ai également modifié mon routeur domestique afin d'avoir des 10.1.0.0 nm 255.255.255.0adresses IP à la maison.

Si je comprends bien, lorsque seul VPN2 (tun0) est actif, il utilise la passerelle par défaut de mon domicile (10.1.0.1) et définit quelques nouveaux itinéraires. Dites-moi si je comprends mal:

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)

Lorsque j'active VPN1 seul, la passerelle par défaut est remplacée par sa propre (xxx.xxx.xxx.53) et tout est redirigé vers celle-ci. C'est aussi pourquoi je ne peux pas voir mon réseau domestique btw (si j'ai raison).

Maintenant, je vois que lorsque je mets les deux VPN sous tension, la passerelle par défaut est redirigée vers celle de VPN1 (xxx.xxx.xxx.53). Ce que je demande, c’est: Comment puis-je configurer des règles, de sorte que:

  • tout pour 198.162.1.0 passe par 198.162.2.17
  • choses pour 198.162.2.17 passent par 10.1.0.1
  • les choses pour xxx.xxx.xxx.0 passent par xxx.xxx.xxx.117
  • choses pour 10.1.0.0 passer à 10.1.0.1

J'ai essayé de jouer avec route addet route delmais j'essaie plus ou moins de faire les choses par essais et erreurs, et je comprendrais mieux ce que je suis censé faire, et si les règles que je veux appliquer ici sont correctes ou fondamentalement stupides ...

EDIT 2: Suivant la suggestion de MariusMatutiae, j’ajoute ici le résultat de ifconfig lorsque les deux VPN sont activés:

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:

description de ce qui ne fonctionne pas: après avoir activé les deux VPN, je ne parviens pas à atteindre VPN tun0; et si j'essaie pingquelque chose en dehors de xxx.xxx.xxx.0 je reçois ping: sendmsg: Operation not permitted.

Idéalement, j'aimerais accéder aux deux réseaux VPN (si le DNS pour les réseaux VNP ne fonctionne pas, je peux le gérer avec une adresse IP directe, ce n'est pas un problème) et idéalement, accéder également à mon réseau local ...

Malheureusement, je ne suis pas assez expert en iptables pour comprendre comment je suis censé le faire.

Merci d'avance

Danduk82
la source
J'ai 5 VPN connectés en même temps sur un de mes systèmes qui achemine / pare-feu le trafic entre les différents VPN. Pour que tout soit bien configuré, il suffit simplement de bien comprendre et configurer vos itinéraires.
Zoredache
Je le fais tout le temps. J'utilise deux services payants. Les deux supportent OpenVPN
Ramhound le
Merci, pourriez-vous s'il vous plaît ajouter une réponse pour me montrer quelques routecommandes pour le faire s'il vous plaît? Merci
Danduk82
1
Quel est exactement le problème avec votre configuration en ce moment? Lequel des deux sous-réseaux que vous ne pouvez pas atteindre? Pouvez-vous accéder à Internet? Avez-vous vérifié que les trois sous-réseaux sont tous différents? Avez-vous vérifié que les fichiers de configuration client et serveur OpenVPn ne contiennent pas de satement, y compris def1 ?
MariusMatutiae
après avoir allumé cscotun0, je ne peux plus atteindre le VPN tun0. J'ai vérifié, pas de def1 dans les deux configurations. Voir ma 3ème édition.
Danduk82

Réponses:

6

Vous pouvez certainement utiliser plusieurs VPN simultanément. Le principal problème en organisant cela est de s'assurer que la table de routage est correcte, car tous les VPN essaieront de la modifier sans supposer qu'il y a plus de VPN faisant la même chose.

Votre scénario est très simple, car vous utilisez essentiellement des VPN pour accéder à des réseaux locaux distants, et non pour rediriger tout votre trafic. La dernière configuration aurait nécessité une configuration plus complexe, mais dans votre cas, nous pouvons nous en tirer avec beaucoup moins de travail.

Une condition préalable pour que cela fonctionne est que tous les sous-réseaux sont différents: votre maison et vos deux lieux de travail.

Si vous avez déjà organisé cela, vous devez vous assurer que votre fichier de configuration client pour OpenVPN ne contient pas l'instruction suivante.

    redirect-gateway def1

et que le fichier de configuration du serveur ne contient pas l'instruction suivante:

   push "redirect-gateway def1 bypass-dhcp"

Étant donné que vous ne souhaitez utiliser que deux réseaux VPN, cela résout déjà votre problème, car même si l'autre réseau VPN saisit la route par défaut, il n'y aura qu'une seule route par défaut dans votre table de routage et vous avez terminé.

Cependant, Cisco VPN ne récupère pas par défaut la route par défaut. Donc, vous devriez être bien. Pour vérifier, assurez-vous que la sortie de route -n contient quelques lignes comme celle-ci,

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

où 192.168.73.1 est votre routeur par défaut domestique (modifiez-le si nécessaire, si votre routeur n'est pas 192.168.73.1).

Ce problème aurait été beaucoup plus amusant si vous aviez voulu rediriger simultanément tout le trafic via les deux VPN (oui, cela peut être fait).

Modifier:

Vous pouvez également utiliser OpenVPN sur différentes interfaces réseau, si vous le souhaitez. Par exemple, vous pouvez faire apparaître une interface virtuelle basée sur votre carte Ethernet comme suit:

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

et maintenant, vérifiez l'adresse IP de l'interface virtuelle mac0 avec

   ip addr show

Ensuite, dans votre fichier de configuration client openvpn , vous pouvez introduire la déclaration

   local IP_address_of_mac0

et lorsque vous vous connecterez à votre serveur OpenVPN, la connexion n’aura été liée qu’à l’interface mac0 . Ensuite, pour accéder au réseau local distant, vous devez vous rappeler de lier toutes les applications à la même interface mac0 et à son adresse IP. Par exemple, pour accéder à un PC via ssh de cette façon, vous devrez dire:

  ssh -b IP_address_of_mac0 user@remote_LAN_pc

etc. Pour ping , vous devriez utiliser

   ping -i IP_address_of_mac0 remote_LAN_pc
MariusMatutiae
la source
lorsque j'essaie d'envoyer une requête ping à des machines situées en dehors de la plage VPN1, le message d'erreur suivant s'affiche: ping: sendmsg: Operation not permitted que signifie-t-il? (même si vous utilisez la syntaxe -I ip_of_other_network_interface)
Danduk82
@ Danduk82, merci de poster ifconfig et la table de routage. Ajoutez-le à votre message, le rend beaucoup plus facile à lire.
MariusMatutiae
1

Il est tout à fait possible d’exécuter simultanément plusieurs VPN.

Je vois quelques problèmes avec votre configuration -

En fonction de ce que vous essayez de faire, vous devez vous assurer que le serveur VPN ne publie pas (ou vous ignorez ou utilisez une métrique inférieure pour la route correcte) par défaut. Sinon, vous avez un VPN qui essaie de se connecter et de se rompre. Bien entendu, cela implique que vous utilisez des VPN uniquement pour atteindre des réseaux / routes spécifiques

Le deuxième problème que vous pouvez rencontrer (notez les réseaux dupliqués 192.168.1.0 avec le masque de réseau 255.255.255.0) semble être que les deux réseaux que vous essayez d’atteindre sont situés à 192.168.1.x. C'est un problème car le noyau ne sait pas à qui vous vous référez également. La solution correcte consiste à renuméroter un des réseaux afin qu’il se trouve dans un bloc de réseau différent. (Il est possible que vous puissiez effectuer des piratages horribles, horribles, avec des fichiers iptables et hosts et d’autres astuces pour imiter cela sur votre système, mais il est hautement spécialisé, fragile et déconseillé).

BTW, lors de la production de tables de routage, il est généralement préférable d’utiliser le commutateur "-n" pour afficher les adresses IP plutôt que de tenter de résoudre les noms de machine - les noms de machine ne signifient rien pour nous !!!

Davidgo
la source
Qu'entendez-vous par renuméroter l'un des réseaux pour qu'il se trouve dans un bloc de réseau différent ? Je ne peux rien modifier dans la configuration cisco VPN, mais je pourrais peut-être modifier certains éléments du fichier de configuration openvpn pour la deuxième connexion.
Danduk82
Je suis au travail maintenant et je vois que l'adresse de firewalllocal est aussi 192.168.1.1. Est-ce une mauvaise chose?
Danduk82
1
Oui, c'est mauvais. Chaque périphérique a besoin d'une adresse IP unique, sinon il est incroyablement difficile de le faire fonctionner (pas quelque chose à essayer sans une compréhension approfondie de TCP / IP.)
davidgo
0

Qu'en est-il simplement de configurer une machine virtuelle W7 dans VirtualBox et d'utiliser le 2e VPN via celui-ci, puis d'utiliser le partage de dossier bidirectionnel entre l'hôte et l'invité? Simplicité. :)

OxygenIT
la source