OpenVPN: ne parcourt qu'une adresse IP spécifique via VPN?

Sur un réseau privé distant, il existe deux serveurs: un serveur de fichiers et un serveur de base de données (ces deux machines Win, au cas où cela compte).

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 nom d'utilisateur et un mot de passe simples, afin d'éviter 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 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, via le VPN. Malheureusement, l'accès au serveur de fichiers via le VPN est extrêmement lent!

Question:

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

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 192.168.0. * Trafic de sous-réseau via le VPN.

Pour une seule adresse IP (192.168.0.1):

 route-nopull route 192.168.0.1 255.255.255.255 

Buts

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

Pas

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

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

  3. Sélectionnez Internet Protocol Version 4 et allez dans Propriétés → Avancé ….

  4. Décocher Utilisez 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 la version de protocole Internet 6 .

  6. (Re) se connecter à votre VPN.

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

  8. Trouvez l'interface VPN dans la liste Interface et sa passerelle dans les 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 VPN est 10.88.1.1 , puisqu'elle est la passerelle pour le bloc 10.xxx.xxx.xxx .

  9. Ajoutez 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 l'adresse IP de whatismyip.org , 10.88.1.1 est l'adresse IP de la passerelle et 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 a fonctionné, whatismyip.org et http://www.whatismyip.cx afficheront des IP différentes maintenant.

Pour configurer 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 via le VPN)

Cela 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 conçu pour "pousser" cette configuration de routage aux clients, en ajoutant à la configuration du serveur:

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

EDIT: une chose que j'ai manqué d'adresser: le renvoi 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" l'itinéraire ne fonctionnerait pas ) avec:

route no-pull

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