Auparavant, sur Ubuntu 16.04, je me sentais trahi lorsqu'une mise à jour Ubuntu installait le paquet dnsmasq
, le configurait et lui donnait la priorité sur mon propre serveur DNS BIND super stable, ultra-rapide et configuré par lui-même. C'était exactement comme si Ubuntu avait piraté mon poste de travail.
Comme je travaillais comme administrateur système, c'était extrêmement inacceptable. C'était un appel de panique. C'est à ce moment-là que vous résolvez un problème et que, dans l'une de vos étapes, vous utilisez Dig
ou nslookup
et vous êtes abasourdi de voir l'interface lo
vous répondre. PANIQUE
Existe-t-il un moyen non seulement de résoudre ce problème, mais également de garantir que /etc/resolv.conf
sera inviolable?
Une simple modification de /etc/NetworkManager/NetworkManager.conf
et la désactivation de systemd-resolved.service
(comme dans cette réponse https://askubuntu.com/a/907249/719422 ). Mais cela seul, bien qu'essentiel, ne garantit pas l'inviolabilité resolv.conf
.
Pour appliquer réellement un /etc/resolv.conf
statique qui survivrait à tout redémarrage, vous devez lui attribuer l'attribut immuable . En ajoutant à la réponse de Bastian Voigt mentionnée ci-dessus, vous le faites en tant que superutilisateur:
echo nameserver 8.8.8.8 > /etc/resolv.conf
chattr -e /etc/resolv.conf
chattr +i /etc/resolv.conf
... changer le nameserver
à la valeur que vous avez choisie. De cette façon, vous pouvez avoir un vraiment statique /etc/resolv.conf
.
La meilleure solution que j'ai trouvée consiste à empêcher NetworkManager de mettre à jour /etc/resolv.conf, puis de créer un nouveau fichier /etc/resolv.conf avec un serveur DNS statique. Voir https://www.ctrl.blog/entry/resolvconf-tutorial pour savoir comment procéder.
Selon les documents, vous pouvez écrire votre resolv.conf
dans /usr/lib/systemd/resolv.conf
, qui est un fichier statique pouvant être lié à partir de /etc/resolv.conf
. Cela ne devrait pas être réécrit.
Sudo ln -sf /usr/lib/systemd/resolv.conf /etc/resolv.conf
http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html#contenttoc
/ETC/RESOLV.CONF
Quatre modes de traitement de /etc/resolv.conf (voir resolv.conf (5)) sont supportés:
...
Un fichier statique /usr/lib/systemd/resolv.conf est fourni. Il répertorie le stub DNS 127.0.0.53 (voir ci-dessus) en tant que serveur DNS uniquement. Ce fichier peut être lié de manière symbolique à partir de /etc/resolv.conf afin de connecter tous les clients locaux qui contournent les API DNS locales à résolus par systemd. Ce fichier ne contient aucun domaine de recherche.