web-dev-qa-db-fra.com

Comment définir un serveur DNS dans openvpn?

J'ai configuré un serveur openvpn avec une clé statique (le mode de certificat n'est pas utilisable en raison de DPI sur la passerelle nationale), mais je ne parviens pas à changer le DNS automatiquement après la connexion. J'ai cherché sur Internet et SE, et tout le monde suggère l'utilisation dhcp-option.

J'ai essayé d'ajouter cette ligne à client.ovpn

dhcp-option DNS 8.8.8.8

Il n'y a aucun effet. J'ai essayé d'ajouter cette ligne dans la configuration du serveur

Push "dhcp-option DNS 8.8.8.8"

Ni l'un ni l'autre n'a d'effet.

En fait, selon le manuel,

--dhcp-option type [parm]

Les propriétés TCP/IP TAP-Win32 étendues doivent être utilisées avec --ip-win32 dynamic ou --ip-win32 adaptive.

Mais mon client est une machine Mac, un serveur Linux. Des solutions au problème?

17
Siyuan Ren

Sur un système Linux, vous devez exécuter un script externe .

Voici la documentation: https://wiki.archlinux.org/index.php/OpenVPN#DNS

Les scripts se trouvent sur ici ou sur une version Linux plus récente ici et vous pouvez les appeler en les ajoutant sur la configuration du client openvpn:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
7
Damien

Je ne suis pas un expert, mais en lisant la page man en dessous de votre devis:

--dhcp-option type [parm]

...

Notez que si - l'option dhcp est poussée via --Push vers un client non Windows , l'option sera enregistrée dans l'environnement du client avant la up script est appelé, sous le nom "foreign_option_ {n}".

et sous foreign_option_ {n}:

foreign_option_ {n}

Une option poussée via --Push vers un client qui ne le supporte pas nativement, comme - dhcp-option sur un système non Windows , être enregistré dans cette séquence de variables d'environnement avant d'exécuter le script .

Ainsi, la ligne de commande openvpn client ne modifie pas automatiquement la configuration DNS sur votre machine OSX après avoir établi la connexion. Mais comme les options DNS sont enregistrées dans l'environnement du client, vous pouvez spécifier un script pour ajouter les serveurs poussés à la configuration DNS actuelle du système avec le --up option:

--up cmd

Exécutez la commande cmd après l'ouverture réussie du périphérique TUN/TAP (modification de l'UID avant l'utilisateur).

cmd consiste en un chemin vers le script (ou programme exécutable), éventuellement suivi d'arguments. Le chemin et les arguments peuvent être entre guillemets simples ou doubles et/ou échappés à l'aide d'une barre oblique inverse, et doivent être séparés par un ou plusieurs espaces.

Par exemple. Tunnelblick fait également cela en utilisant ceci script .

Une autre solution pourrait être un script qui a été publié sur la liste de diffusion openvpn sur DNS pour les clients OS X - le guide définitif .

5
FloHimself

J'ai eu le même problème avec les deux OS Linux (serveur et client), et j'ai résolu itm en installant dnsmasq sur le serveur qui manquait

donc mes pas:

apt-get install dnsmasq

dans server.conf

Push "redirect-gateway def1" Push "dhcp-option DNS 8.8.8.8" Push "dhcp-option DNS 8.8.4.4"

Et je pouvais me connecter et parcourir des domaines via l'IP du serveur, en me connectant avec NetWorkManager avec des ensembles DNS à

4
Maddish