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.
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
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
.
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:
ipconfig
. Pour moi, c'était "Local Area Connection 2". N'oubliez pas votre adresse IP pour cet adaptateur.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.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 .