OpenVPN: routez uniquement des adresses IP spécifiques via VPN?

45

Sur un réseau privé distant, il y a deux serveurs - un serveur de fichiers et un serveur de base de données (ce sont les deux machines Win, le cas échéant).

Le serveur de fichiers possède ses propres mécanismes d'authentification relativement robustes et me permet de me connecter directement à partir d'un emplacement distant.

Le serveur de base de données utilise un nom d'utilisateur et un mot de passe simples. Pour empêcher tout accès non autorisé, il est verrouillé sur le réseau local - le trafic externe est bloqué.

Pour accéder au serveur de base de données, j'utilise le client OpenVPN sous Windows pour me connecter à un serveur VPN du réseau privé.

Par défaut, OpenVPN route tous les paquets réseau destinés au réseau distant sur lequel réside le serveur VPN, via le VPN. Malheureusement, accéder au serveur de fichiers via le VPN est extrêmement lent!

Question:

Comment puis-je configurer le client OpenVPN pour acheminer UNIQUEMENT le trafic via le VPN destiné à une adresse IP unique et spécifique, à savoir le serveur de base de données?

Brian Lacy
la source
C'est simple, voyez ici pour savoir comment le faire. Superuser.com/a/178675/96461
Sameer

Réponses:

51

La configuration correcte pour OpenVpn est:

route-nopull 
route 192.168.0.0 255.255.255.0

Ces entrées appartiennent à votre fichier .ovpn et dirigeront tout le trafic de sous-réseau 192.168.0. * Via le VPN.

Pour un seul IP (192.168.0.1):

route-nopull 
route 192.168.0.1 255.255.255.255
Thomas
la source
Nous sommes principalement anglophones et ne connaissons pas nécessairement l'allemand. S'il vous plaît traduire votre réponse.
Gronostaj
1
+1 C'est exactement ce dont j'avais besoin. J'utilise des clients ovpn sur mon linux et par conséquent, votre réponse vient de me sauver. Merci.
slayedbylucifer
Puis-je simplement router un site web vers un vpn? Par exemple, juste www.facebook.com
Nicola Peluchetti
Dans mon cas, l'acheminement d'une seule adresse IP par vpn semble fonctionner correctement. Mais lorsque vous utilisez un masque de sous-réseau, cela ne fonctionne pas du tout. Des idées pourquoi?
running.t
Je ne sais toujours pas répondre à ma question (ci-dessus), mais j'ai fait des recherches et créé un fil séparé à ce sujet: superuser.com/questions/854194/…
running.t
24

Buts

  • Utilisez la connexion Internet standard pour tout le trafic Internet par défaut, même lorsque le VPN est connecté.
  • Routez le trafic vers une adresse IP spécifique via le VPN.

Pas

  1. Appuyez sur Win+ Ret exécutez ncpa.cpl.

  2. Cliquez avec le bouton droit de la souris sur la connexion VPN et allez à Propriétés → Réseau .

  3. Sélectionnez Internet Protocol Version 4 et accédez à Propriétés → Avancé ... .

  4. Décochez la case Utiliser la passerelle par défaut sur le réseau distant et cliquez sur OK .

  5. (facultatif) Répétez les étapes précédentes pour Internet Protocol Version 6 .

  6. (Re) connectez-vous à votre VPN.

  7. Ouvrez une invite de commande et exécutez-la route print -4.

  8. Repérez l'interface du VPN dans la liste des interfaces et sa passerelle dans les itinéraires actifs .

    Sur ma machine, j'ai:

    Interface List
     32...........................Super Free VPN
    
    [...]
    
    Active Routes:
    Network Destination        Netmask          Gateway       Interface  Metric
              0.0.0.0          0.0.0.0         On-link        10.6.6.127     31
             10.0.0.0        255.0.0.0        10.88.1.1      10.88.1.102     31
    

    Ici, la passerelle du VPN est 10.88.1.1, puisque c'est la passerelle du 10.xxx.xxx.xxxbloc.

  9. Ajoutez un itinéraire persistant qui sera ajouté aux itinéraires actifs chaque fois qu'il y a une connexion au VPN:

    route -p add 23.22.135.169 10.88.1.1 if 32
    

    Dans cet exemple, 23.22.135.169est l'adresse IP de whatismyip.org, 10.88.1.1est IP et de la passerelle 32du numéro de l'interface.

  10. (facultatif) Répétez les étapes précédentes pour route print -6.

  11. Testez la configuration.

    Si tout fonctionne, whatismyip.org et www.whatismyip.cx afficheront maintenant différentes adresses IP.

Dennis
la source
1
Il y a sûrement un moyen plus simple?
Brian Lacy
1
Savez-vous comment réaliser cela sous Linux (Ubuntu)?
Елин Й.
1
@ ЕлинЙ. si vous utilisez Network Manager, sélectionnez "Utiliser cette connexion uniquement pour les ressources de ce réseau".
leif81
1
+1 ... mais cela pourrait-il jouer au golf?
Olivier Dulac
11

Dans votre configuration client OpenVPN, ajoutez une ligne comme celle-ci:

route The.IP.To.Go 255.255.255.255

(Où.IP.To.Go est l'adresse IP que vous souhaitez router via le VPN)

Ceci indique à OpenVPN de créer l'entrée dans la table de routage de votre système d'exploitation.

Alternativement, le serveur OpenVPN pourrait être amené à "pousser" cette configuration de routage vers les clients, en ajoutant à la configuration du serveur:

push "route The.IP.To.Go 255.255.255.255"

EDIT: Une chose qui me manquait dans l'adressage - le transfert par défaut de tout le trafic ... Il pourrait être soit désactivé sur le serveur, soit les clients pourraient choisir d'ignorer les directives "poussées" (notre deuxième option "pousser" la route ne fonctionnerait pas) ) via:

route-nopull
Adam
la source
-2
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>
Dharmesh
la source
S'il vous plaît expliquer ce que cette commande fait. Une seule commande sans explication n’est pas très utile. Vérifiez également le formatage de votre message: <brackets>ils ne sont pas tous visibles s'ils ne sont pas marqués en tant que code.
Slhck