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

16

Comment puis-je 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 réfèrent à la transmission 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 actuellement 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.

Fahad Yousuf
la source

Réponses:

3

Pour ce faire, vous pouvez utiliser un script batch, quelque chose comme ceci. 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 -onnect.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 d'option dans OpenVPN pour se déconnecter via la ligne de commande. Si vous souhaitez automatiser la connexion, cela devrait fonctionner:

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

Andrew White
la source
15

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

dhcp-option DNS <dns_server_ip_address>

Côté serveur, cela aurait été:

push "dhcp-option DNS <dns_server_ip_address>"

Il semble qu'il utilise des dhcp-optiondeux côtés. Vous pouvez faire de même avec route.

brunoqc
la source
4
Cela n'a pas fonctionné pour moi bien qu'il semble que cela devrait. L'option n'était pas dans le client généré.ovpn. Quand je l'ajoute, cela ne fonctionne toujours pas. Fonctionnant à partir d'un Asus RT-N66U avec le firmware d'origine 3.0.0.4.376_3861
Shea
2
J'ai ajouté cela à mon fichier .ovpn juste avant la balise <ca> et cela a fonctionné magnifiquement! Je vous remercie! J'ai testé cela sur ma machine Windows avec OpenVPN 2.4.4 Windows version 6.2
Michael Kargl
6

Apparemment, il y a un problème avec un ordre de liaison défectueux dans Windows, y compris 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 les paramètres 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 appareil VPN en regardant la sortie 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\Interfaceslaquelle correspond l'adresse IP de votre adaptateur VPN. N'oubliez pas le GUID de cet adaptateur.
  3. Allez sur HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkageet double-cliquez sur Bind. Il contiendra une liste de GUID pour les adaptateurs. Coupez et collez la ligne correspondant au GUID de votre appareil VPN en haut de la liste et enregistrez la liste.

Cela entraînera l'utilisation des entrées DNS pour votre appareil VPN (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 ce billet de blog très utile .

jtbr
la source
Cela a plutôt bien fonctionné! Merci monsieur d'avoir écrit ce guide
SeriousM
3

En plus de l'un des deux ci-dessous:

dhcp-option DNS <dns_server_ip_address>          (add to client config)

ou

push "dhcp-option DNS <dns_server_ip_address>"   (add to server config)

Ajoutez-les également à la configuration client pour forcer Windows à utiliser le DNS configuré:

register-dns
block-outside-dns

Le 1er oblige Windows à préférer le serveur DNS configuré à tout autre qu'il pourrait avoir reçu de DHCP. Le 2e empêche la fuite DNS vers tout serveur DNS autre que celui configuré.

Duke Nukem
la source