78 votes

OpenVPN : Ne router qu'une adresse IP spécifique à travers le VPN ?

Sur un réseau privé distant se trouvent deux serveurs : un serveur de fichiers et un serveur de base de données (ce sont tous deux des machines Win, au cas où cela aurait de l'importance).

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

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

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

Par défaut, OpenVPN achemine tous les paquets réseau destinés au réseau distant sur lequel réside le serveur VPN, à travers le VPN. Malheureusement, l'accès au serveur de fichiers à travers le VPN est extrêmement Lentement !

Pregunta:

Comment puis-je configurer le client OpenVPN pour qu'il achemine UNIQUEMENT par le VPN le trafic destiné à une seule adresse IP spécifique, à savoir le serveur de base de données ?

99voto

Thomas Points 1091

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 du sous-réseau 192.168.0.* à travers le VPN.

Pour une seule IP (192.168.0.1) :

route-nopull 
route 192.168.0.1 255.255.255.255

BTW : route-nopull signifie "ne pas tirer de routes du serveur".

30voto

Dennis Points 46916

Objectifs

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

Étapes

  1. Appuyez sur Win + R et exécute ncpa.cpl .

  2. Cliquez à droite sur la connexion VPN et allez à Propriétés → Mise en réseau .

  3. Sélectionnez Protocole Internet version 4 et aller à Propriétés → Avancé... .

  4. Décochez 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 Protocole Internet version 6 .

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

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

  8. Repérer l'interface du VPN dans le Liste des interfaces et sa passerelle dans le Routes actives .

    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 puisqu'il s'agit de la passerelle pour le 10.xxx.xxx.xxx bloc.

  9. Ajouter une route persistante qui sera ajoutée aux routes actives 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.169 est le PI de whatismyip.org , 10.88.1.1 est l'IP de la passerelle et 32 le 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 s'est bien passé, whatismyip.org y www.whatismyip.cx affichera des IPs différentes maintenant.

21voto

Adam Points 211

Dans la configuration de votre client OpenVPN, ajoutez une ligne comme :

route The.IP.To.Go 255.255.255.255

(Où The.IP.To.Go est l'IP que vous souhaitez acheminer par le VPN)

Ceci indique à OpenVPN de créer l'entrée dans la table de routage de votre OS.

Alternativement, le serveur OpenVPN pourrait être fait pour "pousser" cette configuration de routage vers les clients, en l'ajoutant à la configuration du serveur :

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

EDIT : Une chose que j'ai oublié d'aborder : le transfert par défaut de tout le trafic... Il pourrait être désactivé sur le serveur, ou les clients peuvent choisir d'ignorer les directives "poussées" (donc notre deuxième option "pousser" la route ne fonctionnerait pas) via :

route-nopull

7voto

DeveloperACE Points 171

En réponse aux commentaires demandant une solution facile pour linux / networkmanager pour personnaliser ce qui est routé sur OpenVPN, voici une façon conviviale de le configurer. Cette réponse est, pour autant que je puisse dire, juste la version GUI de La réponse de Thomas .

Screenshot of network manager showing where to click

Étape 1 : sélectionnez votre configuration VPN

Étape 2 : allez sur l'onglet correspondant (soit IPv4 soit IPv6)

Étape 3 : Cliquez sur le bouton "Routes..." en bas à droite.

Étape 4 : Ajoutez la route souhaitée (dans ce cas, elle redirige tout le trafic de 192.168.0.* à travers le VPN).

Étape 5 : cochez la case "utiliser uniquement pour les ressources sur cette connexion" afin que la connexion au VPN ne modifie pas vos paramètres de passerelle par défaut pour acheminer tout le trafic par le VPN.

-2voto

Dharmesh Points 11
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X