web-dev-qa-db-fra.com

Configuration des serveurs DNS à l'aide du fichier de configuration du client OpenVPN

Comment définir des serveurs DNS sur le client en utilisant uniquement la configuration du client. Mon client est une machine Windows et je souhaite modifier les serveurs DNS lorsque le client se connecte et revenir à la configuration d'origine lorsque je me déconnecte du VPN.

Toutes les informations que j'ai trouvées jusqu'à présent se rapportent à l'envoi de la configuration DNS au client à l'aide de la configuration du serveur, mais dans ce cas, je ne peux pas modifier la configuration du serveur et je le fais manuellement chaque fois que je me connecte au VPN. Une option de configuration openvpn pour définir les serveurs DNS des machines locales pour la durée de la connexion serait formidable.

15
Fahad Yousuf

Vous pouvez utiliser un script de traitement par lots pour ce faire, à peu près comme suit. Il suppose que vos serveurs DNS domestiques sont 1.1.1.1 et 2.2.2.2 et vos serveurs DNS VPN sont 8.8.8.8 9.9.9.9:

vpn-connect.bat:

netsh interface ip set dns "Local Area Connection" static 8.8.8.8

netsh interface ip add dns "Local Area Connection" 9.9.9.9

vpn-disconnect.bat

netsh interface ip set dns "Local Area Connection" static 1.1.1.1

netsh interface ip add dns "Local Area Connection" 2.2.2.2

J'allais inclure dans ces scripts des méthodes de connexion et de déconnexion, mais je ne vois pas dans OpenVPN une option permettant de se déconnecter via une ligne de commande. Si vous souhaitez automatiser la connexion, cela devrait fonctionner:

C:\Program Files\bin\openvpn.exe C:\Program Files\conf\client.ovpn

3
Andrew White

Vous pouvez ajouter ce qui suit au fichier de configuration du client.

dhcp-option DNS <dns_server_ip_address>

Du côté du serveur, cela aurait été:

Push "dhcp-option DNS <dns_server_ip_address>"

Il semble que cela utilise dhcp-option des deux côtés. Vous pouvez faire la même chose avec route.

13
brunoqc

Il semble y avoir un problème d’ordre de liaison défectueux dans Windows, incluant au moins Windows 2000/XP/7. Cela entraînera les clients Windows OpenVPN à utiliser les paramètres DNS de la carte réseau par défaut plutôt que ceux de la carte VPN.

Pour résoudre ce problème, vous devez placer votre périphérique VPN TUN ou TAP au-dessus de votre carte réseau locale dans l'ordre de liaison:

  1. Identifiez votre périphérique VPN en consultant le résultat de ipconfig. Pour moi, c'était "Local Area Connection 2". N'oubliez pas votre adresse IP pour cet adaptateur.
  2. Ouvrez regedit.exe et recherchez la clé sous HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces qui correspond à l'adresse IP de votre adaptateur VPN. Rappelez-vous le GUID de cet adaptateur.
  3. Allez à HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage et double-cliquez sur Bind. Cela contiendra une liste de GUID pour les adaptateurs. Coupez et collez la ligne correspondant au GUID de votre périphérique VPN en haut de la liste et enregistrez la liste.

Les entrées DNS de votre périphérique VPN seront donc utilisées (et uniquement lorsque la connexion VPN est active). Vous pouvez les définir en fonction de la réponse de @brunoqc. Pendant que vous y êtes, vous devriez probablement également ajouter l’option openvpn block-outside-dns, pour vous assurer que les requêtes DNS ne fuient pas.

Cette réponse est basée sur cet article de blog très utile .

6
jtbr