Debian Buster : OpenVpn et Dns

Tags: #<Tag:0x00007f63f23de6d8>

Bonjour,

J’utilise Debian Buster et j’ai mis en place une configuration OpenVPN classique entre mes 2 machines.

Cela fonctionne correctement mais j’ai un problème au niveau de la configuration DNS.

J’aimerais que le client utilise la configuration DNS que lui fournit le serveur.
J’ai essayé plusieurs choses pour la configuration du client, mais à chaque fois le resultat n’est pas satisfaisant.

Le client reçoit bien la configuration DNS du serveur et ajoute les nouveaux serveurs DNS aux siens (même si je préfèrerais que le client garde juste les nouveaux).

Une fois connecté au VPN, dans le /etc/resolv.conf du client, j’ai donc les serveurs DNS « originaux » du client + ceux que le serveur envoit.

Le problème , c’est que le « Current DNS Server » n’est pas modifié, ce n’est pas le serveur DNS envoyé par le serveur qui est utilisé.

Est-ce que quelqu’un sait comment régler ce problème sous Debian 10 ?
Merci.

Bonjour,

sur la machine cliente quand tu fais un nslookup / host , quel serveur utilise-t-il? Celui d’origine (avant VPN)?
Ou s’agit-il d’un time out, qui donc indique que tu n’as pas de réponse DNS? Et que, peut être , tu ne peux sortir? (problème du genre /proc/sys/net/ipv4/conf/tap0/rp_filter)

Autrement, comment est configuré ton DNS local (sans OpenVPN activé)?

Bonjour et merci pour la reponse.

Pour information, voici le /etc/resolv.conf de mon client quand il n’est pas connecté au VPN :
nameserver 192.168.122.1

Et mon /etc/resolv.conf quand le client est connecté au VPN
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 192.168.122.1

Un nslookup / host me renvoie cela :
nslookup: couldn't get address for 'host': not found

Un nslookup « simple » me renvoie cela :
Server: 192.168.122.1
Address: 192.168.122.1#53

Donc, nslookup utilise le serveur d’origine.
Mon dns local est configuré de maniere classique. Celui du FAI est pris automatiquement.

Petite question, tu as fait un VPN entre tes deux machines: toutes les deux dans ton réseau local?
L’une des deux machines est le client, l’autre c’est quoi? La passerelle/firewall/routeur (ta box en somme)?

Mes 2 pc ne sont pas dans le meme réseau local.
Le client est mon pc portable qui peut être à différents endroits.
Mon serveur est un pc aussi. Ce n’est pas une box mais il peut faire du routage eventuellement.

Il peut y avoir une box entre le client et le serveur, mais je ne peux pas modifier sa configuration à chaque endroit où je serai.

Ce que je ne comprends pas, c’est pourquoi la configuration DNS est bien transmise du serveur au client (ajout des serveurs DNS à /etc/resolv.conf) et malgré cela le « Current DNS Server » ne change pas.

Est-ce que quelqu’un à vraiment réussi à faire fonctionner OpenVPN avec les bon DNS sur debian Buster ?

Ce n’est pas une commande à taper telle quelle, c’est une suggestion d’utiliser au choix nslookup ou host (on peut ajouter un troisième larron dig) pour tester la résolution DNS. Pour chacune il faut spécifier des arguments, au minimum le nom à résoudre.

Attention, nslookup et ses frères n’utilisent pas forcément les entrées nameserver du fichier /etc/resolv.conf dans le même ordre que le résolveur du système. Par défaut, ce dernier est censé interroger les serveurs DNS dans l’ordre du fichier jusqu’à obtenir une réponse, sauf si le fichier contient options rotate. Pour utiliser le résolveur système, on peut utiliser getent hosts <nom>.

Est-ce que tu as posté le contenu du fichier resolv.conf en entier ou y a-t-il un commentaire du genre « do not edit, created by resolvconf » en en-tête ?

1 J'aime

Quand je fais un host ou un getent hosts …, comme vous me l’ecrivez, je ne vois pas d’information sur le serveur DNS.

Oui dans le fichier resolv.conf j’ai ce commentaire. Je n’ai pas touché manuellement à la configuration DNS du client.

Ce n’est pas fait pour. Si on veut voir quel serveur DNS est interrogé, il faut soit faire une capture de paquets (tcpdump, wireshark…) soit faire une trace d’exécution pour voir les appels système (strace…)

Quel commentaire exactement ? Quel est le contenu complet du fichier ?

Merci pour votre aide, mais j’ai l’impression qu’on avance pas là …

J’aimerais juste savoir une chose :
Est-ce que quelqu’un a réussi à mettre en place cette configuration de base sur Debian Buster ?

Ça avancerait peut-être davantage si tu répondais aux question et fournissais des informations correctes, précises et complètes.
J’attaque :

Or on voit plus loin dans un extrait de resolv.conf (que tu reconnaîtras plus tard comme étant incomplet) que c’est plutôt « DNS fournis par ton serveur VPN + DNS original », dans cet ordre. L’ordre a une importance.

Cette phrase ne veut strictement rien dire.

Quel DNS du FAI ? On ne le voit nulle part. On ne voit qu’un DNS local 192.168.122.1 et les DNS d’OpenDNS 208.67.222.222 et 208.67.220.220 fournis par ton serveur VPN.

Comment ça, « éventuellement » ? Il fait du routage ou pas ? S’il ne fait pas de routage et si le VPN est configuré pour que la route par défaut du client passe par le tunnel, comment comptes-tu atteindre les serveurs DNS d’OpenDNS via le tunnel ?

J’ai testé, nslookup et ses potes interrogent systématiquement les DNS dans l’ordre du fichier resolv.conf. Si c’est le dernier qui répond, ça pourrait vouloir dire que les deux premiers n’ont pas répondu. On en revient à mon interrogation concernant leur accessibilité. As-tu essayé d’interroger explictement les serveurs DNS d’OpenDNS pour vérifier s’ils répondent ?
Syntaxe:

host <nomdedomaine> <serveurDNS>
nslookup <nomdedomaine> <serveurDNS>
dig <nomdedomaine> @<serveurDNS>

Comme il faut fournir « des preuves » :

Sur le client, quand openvpn est lancé :

**host www.google.com 208.67.222.222**
Using domain server:
Name: 208.67.222.222
Address: 208.67.222.222#53
Aliases: 

www.google.com has address 216.58.213.132
www.google.com has IPv6 address 2a00:1450:4007:810::2004


**cat /etc/resolv.conf**
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 208.67.222.222
nameserver 208.67.220.220
nameserver 192.168.122.1

On peut passer mainentenant au vrai problème ? A savoir que le Current DNS Server n’est pas changé ?

D’accord, les serveurs DNS passés par openvpn sont joignables, fausse piste. Du coup je ne vois pas pourquoi nslookup utilise par défaut le DNS local qui est en dernier dans /etc.resolv.conf. Mais ça ne veut pas dire que le résolveur système fait pareil. Pour le vérifier il faudrait faire une capture des paquets de requêtes DNS lors d’une résolution de nom demandée par un programme « normal » (pas un programme de requête DNS).

Au fait, que veux-tu dire exactement par « Current DNS Server » ? Où vois-tu cette mention ?