Méthode rapide et sale (“quick and dirty”) : activer l’attribut “i” (immutable) du fichier avec chattr. Ainsi il ne sera pas modifiable même par root.
Méthode élégante : installer resolvconf s’il ne l’est pas déjà et le configurer. Quand resolvconf est présent, les sources de DNS majeures (isc-dhcp-client, ifupdown, network-manager, openvpn…) passent par son intermédiaire au lieu d’écrire directement dans resolv.conf. Il est possible de le configurer pour ajouter un DNS de son choix, ordonner les DNS fournis par les différentes sources…
Autre méthode : configurer le ou les programmes qui écrivent dans resolv.conf pour y inscrire ce que tu souhaites.
root@debian:/# grep prepend /etc/dhcp/dhclient.conf
#prepend domain-name-servers 127.0.0.1;
prepend domain-name-servers 37.235.1.174,80.67.169.12,64.6.64.6;
root@debian:/# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 37.235.1.174
nameserver 80.67.169.12
nameserver 64.6.64.6
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
root@debian:/#
mais par contre quand je vais voir mon fichier resolv.conf
il n’a pas bougé, j’ai toujours seulement les 2 dns d’origine de mon fournisseur d’accès, ceux dont je veux me débarrasser :
root@homijima:/home/matiu# cat /etc/resolv.conf
Generated by NetworkManager
nameserver 89.2.0.1
nameserver 89.2.0.2
Il faut faire autre chose pour que ce soit pris en compte ?
NOTE : il se peut que le solveur libc ne prenne pas en charge plus de 3 serveurs de noms.
Les serveurs de noms listés ci-dessous peuvent ne pas être reconnus.
nameserver 89.2.0.2
root@homijima:/home/matiu#
Et pour tester : j’ai pu voir que par exemple un célèbre site avec un bateau pirate m’est désormais accessible, alors qu’il était bloqué par le resolver de mon FAI.
Vu le résultat de ta commande ci-dessous, tu ne te débarrasses pas des DNS de ton FAI (Numicable : 89.2.0.1)
Pour ce faire tu dois utiliser l’option supersede et non paspreprend comme expliqué sur le site que je t’ai indiqué plus haut et que je remets ici (voir le dernier tiers de l’article):
il est assez simple de désigner 3 DNS pour que ceux du FAI ne soient plus pris en compte
root@debian:/# grep prepend /etc/dhcp/dhclient.conf
#prepend domain-name-servers 127.0.0.1;
prepend domain-name-servers 37.235.1.174,80.67.169.12,64.6.64.6;
root@debian:/# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 37.235.1.174
nameserver 80.67.169.12
nameserver 64.6.64.6
# NOTE: the libc resolver may not support more than 3 nameservers.
# The nameservers listed below may not be recognized.
Je n’ai pas dis l’inverse
Je dis juste qu’une option adaptée existe en fonction du besoin recherché; surtout lorsque l’on regarde la tête du contenu de son resolv.conf. On voit qu’il ne se “débarrasse” pas du DNS de son FAI.
Sauf qu’il faut le faire pour chaque connexion utilisée, donc pas très pratique quand on est itinérant et qu’on change souvent.
dhclient est commun à toutes les connexions