Dans cet article je vais vous montrer comment installer un serveur DNS. Dans ce tuto, je vais utiliser Unbound et l’installer soit sur Xubuntu ou sur Proxmox. Il existe un autre serveur DNS (Bind9), mais il ne fera pas l’objet de cet article. Sachez à titre d’information qu’on peut aussi installer Unbound sur Windows.
Un DNS késaco ?
Pour faire simple, un DNS est un serveur qui fait le lien entre l’adresse http et l’adresse IP où se trouve le site. On peut comparer ça a un annuaire, par exemple le nom, c’est adresse et le numéro de téléphone, l’adresse IP.
Quel est l’intérêt d’un DNS
le premier intérêt, c’est que la requête ne passe plus sur le DNS du FAI.
Le deuxième DNS étant un « annuaire » le bottin du FAI peut être incomplet (dns menteur). En ayant un DNS maison ; on peut retrouver les adresses manquantes. Aussi pas besoin d’aller sur les DNS de Google et d’autres entreprises.
Installer DNS sur son linux
Pour installer le dns; on va d’abord installer unbound
sudo apt-get update
sudo apt-get install unbound
On modifie resolved.conf
nano /etc/systemd/resolved.conf
Sous resolve copier coller ceci
[Resolve] DNS=127.0.0.1 #FallbackDNS= #Domains= DNSSEC=yes #DNSOverTLS=no #MulticastDNS=no #LLMNR=no #Cache=no-negative DNSStubListener=no #DNSStubListenerExtra=
sudo systemctl restart systemd-resolved
Installer un serveur DNS sur proxmox
Si vous avez suivi mon article précédent, vous avez vu comment installer l’hyperviseur proxmox. Je vais me servir d’un container lxc pour héberger mon serveur dns. Si j’ai plusieurs ordinateurs ; cette solution sera plus optimum.
Dans l’interface proxmox;je clique sur create ct (bouton bleu en haut à droite).
Je lui donne un nom et un id (ex binddns et 107) et le mot de passe pour SSH.
Je choisis le template précédemment téléchargé (se référer à mon article).
Le stockage, je lui assigne 8 go dans cet exemple, mais vous pouvez mettre 2 go sachant que vous pouvez augmenter le stockage par la suite sans problème et que le programme ne prend pas beaucoup de place.
1 core est amplement suffisant pour l’utilisation.
Laisser 512 Mo (sachez que le container devrait prendre 50 Mo de mémoire donc vous pouvez mettre 200 Mo si vous le voulez).
Je mets une IP statique pour pouvoir me connecter en local via SSH.
Là, on est dredi; donc rien
Il faudra aussi aller par la suite dans le container dire de démarrer à chaque démarrage de l’hyperviseur proxmox (option ->start at boot->cliquer start at boot).
Ensuite
J’installe un utilisateur que je vais appeler toto. Je le fais, car par défaut, on ne peut pas se connecter en SSH avec root (ce qui est normal).
adduser toto
adduser toto sudo
#si vous voulez vous connecter par la suite en ssh par exemple
ssh toto@192.168.17
Un petit update et on installe unbound.
sudo apt-get update
sudo apt-get install unbound
On édite resolved.conf.
nano /etc/systemd/resolved.conf
Sous resolve copier-coller ceci
[Resolve] DNS=127.0.0.1 #FallbackDNS= #Domains= DNSSEC=yes #DNSOverTLS=no #MulticastDNS=no #LLMNR=no #Cache=no-negative DNSStubListener=no #DNSStubListenerExtra= On fait un lien symbolique ln -fs /run/systemd/resolve/resolv.conf /etc/resolv.conf
On redémarre systemd-resolved
systemctl restart systemd-resolved
⚠️ Petite particularité du container lxc est qu’il réécrit le fichier resolv.conf à chaque redémarrage. Pour éviter cela, il faut créer dans le dossier etc un fichier .pve-ignore.resolv.conf qu’on laisse vide.
touch /etc/.pve-ignore.resolv.conf
À ce moment-là; si vous faites un ping , vous verrez que ça fonctionne tout du moins sur le serveur (mais il reste quelques étapes pour cela soit fonctionnel sur votre pc)
ping -c3 adressenonlisté
Pour faire fonctionner le DNS du serveur vers un autre ordinateur, il faut éditer unbound.conf
nano /etc/unbound/unbound.conf
Juste après server, il faudra ajouter ces lignes.
server:
# location of the trust anchor file that enables DNSSEC
#auto-trust-anchor-file: "/var/lib/unbound/root.key"
# send minimal amount of information to upstream servers to enhance privacy
qname-minimisation: yes
# the interface that is used to connect to the network (this will listen to all interfaces)
interface: 0.0.0.0
# interface: ::0
# addresses from the IP range that are allowed to connect to the resolver
access-control: 192.168.1.0/16 allow
# access-control: 2001:DB8/64 allow
remote-control:
# allows controling unbound using "unbound-control"
control-enable: yes
Le paramètre important à modifier sera access-control il faudra mettre l’adresse de votre routeur ex 192.168.1.0/16
On redémarre unbound
sudo systemctl restart unbound
Connecter son ordi au serveur DNS
Je ne vais pas montrer comment connecter votre ordi sur votre ordinateur windows ,mais seulement sur xubuntu.
- Cliquer sur l’applet wifi puis modifier les connexions
- Choisissez selon votre connexion et cliquer sur réglage
- Cliquer sur paramètre ipv4 et entrez l’adresse de votre serveur local sur serveur dns supplémentaire. Dans mon exemple192.168.1.17
Félicitation, vous avez officiellement un serveur dns fonctionnel.
Update: À l’heure où j’écris ce tuto; il pourrait ne plus être d’actualité dans les mois voir année à venir avec systemd; sur certain oslinux; le fichier /run/systemd/resolve/resolv.conf sera différent. Il sera écrit à la troisième ligne « do not edit ». Donc le lien symbolique risque peut être de ne pas fonctionner (Affaire à suivre ; je ferais un nouveau tuto si cela change). (https://www.youtube.com/watch?v=O4X04CWmyY4)
Source
https://unbound.docs.nlnetlabs.nl/en/latest/use-cases/home-resolver.html