Hello,
Petit pas à pas sur l'installation d'un serveur DNS local sur NuTyX. Alors, avant de commencer :
DNS, qu'est ce que c'est ?Un serveur DNS (domain name system) fonctionne comme un annaire téléphonique. Il fait correspondre un nom de domaine avec une adresse IP. Enfin ça c'est la version simple. Dans la réalité, le fonctionnement des serveurs DNS repose sur une structure d'arbre, comme ceci :
source de l'imageQuel serveur DNS est utilisé sur la machine ?Si aucune modification n'a été faite, probablement ceux proposés par votre FAI. Et ça pose plusieurs problèmes. Les preformances de ces serveurs sont généralements mauvaises par rapport à ce que d'autres proposent, une vie privée aux fraises (et non le VPN n'est pas une solution car même si aujourd'hui presque tous les VPN utilises leurs propres DNS, la connexion initiale aura besoin d'un DNS lookup), des problèmes de censure (si on contrôle l'annuaire du web, on coupe ce qu'on veut!) et j'en passe...
Des solutions ?Oui !
Déjà, au niveau logiciel, les navigateurs internet proposent généralement de paramétrer des DNS. Firefox propose par exemple d'utiliser le DoH (DNS over HTTPS) de Cloudfaire ou de NextDNS. Pratique parce que aucune configuration complexe n'est requise, mais limitant car ça ne conserne que le navigateur.
Ensuite, au niveau de sa connexion. NetworkManager propose de changer le DNS utilisé pour une connexion particulière. On peut alors utiliser des services de "forwarders" comme Google (8.8.8.8 // 8.8.4.4), Cloudfare (1.1.1.1 // 1.0.0.1), Quad9 (9.9.9.9 // 149.112.112.112), etc... C'est déjà bien ! Mais pas top... On a déplacé le problème de notre fournisseur d'accès vers l'organisme "de confiance" que l'on a choisi. Surement moins pire, mais pas optimal.
LA solution !La solution existe, elle est assez facile à mettre en place, et elle est disponible sur
NuTyX !
On va installer
unbound. Je vous laisse lire les détails si ça vous intéresse (ça devrai !). Globalement, unbound va nous permettre de:
- Se passer du serveur DNS de notre FAI
- Se passer de serveurs DNS tiers
- Conserver une arborescence DNS locale donc instantanée, et directement de l'arborescence délivrée par les serveurs racines
C'est parti.
//Installation
$ sudo su
# cards install unbound
//Configuration
# cd /etc/unbound
# mv unbound.conf unbound.conf.bak
# touch unbound.conf
Une configuration simple, basique mais efficace :
server:
# All interfaces
interface: 0.0.0.0
# ALLOW
access-control: 192.168.0.0/24 allow
access-control: 127.0.0.1 allow
access-control: ::1 allow
# DENY
access-control: 0.0.0.0/0 deny
access-control: ::/0 deny
# Use the root DNS servers
root-hints: root.hints
#forward-zone:
# # For all domaines
# name: "."
#
# # DNS to forward
# # You should not use forwarders ;)
# forward-first: yes
Une fois la config en place, toujours dans /etc/unbound, on télécharge le fichier des serveurs racine
# curl --output /etc/unbound/root.hints https://www.internic.net/domain/named.cache
Enfin, on change nos paramètres système
# cd /etc
# vi resolv.conf
>> REMPLACER L'IP PRÉSENTE DANS LE FICHIER PAR 127.0.0.1
# chattr +i resolv.conf
Et voila, c'est terminé ! Il ne reste plus qu'à lancer unbound soit
- Depuis la cli
- Depuis systemd
- Depuis sysV
J'utilise sysV, actuellement il n'y a pas de script service disponible sur NuTyX, donc je vous propose non officiellement le miens qui fonctionne pour lancer le service au boot de la machine.
En lien ici pour ne pas dépasser le nombre de caractères max.Ce post sera mis à jour quand un script officiel sera disponible via cards.
Quelques notesÉvidement unbound permet beaucoup de choses (DNSSEC, gestion du cache, bloquer les IP pour s'en servir comme bloqueur de pub, etc...). Lisez le fichier de config par défaut qui est très bien documenté !
Le fichier root.hints peut être actualisé avec la même commande tous les 6mois par précaution (certains penses que c'est un peu "overkill", j'en suis, mais en même temps ça ne fait pas de mal).
Sur un PC de boulot qui utilise un serveur DNS privé dans un réseau local, ces manips sont à éviter !