Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
configuration_serveur_dns_pour_son_poste_de_travail [Le 24/08/2021, 15:01] – Meilleure expression sefranconfiguration_serveur_dns_pour_son_poste_de_travail [Le 10/05/2023, 11:47] (Version actuelle) – Ajout fin de ligne sefran
Ligne 67: Ligne 67:
 Éditer /etc/dhcp/dhclient.conf Éditer /etc/dhcp/dhclient.conf
 <file> <file>
-prepend domaine-perso.fr 10.10.10.1 fd00::+prepend domaine-perso.fr 10.10.10.1 fd00::;
 </file> </file>
  
Ligne 84: Ligne 84:
 </code> </code>
 ===== Installation de Dnsmasq ===== ===== Installation de Dnsmasq =====
 +Installer les applications de base pour Dnsmasq et sa gestion
 +<code bash>
 +$ sudo apt install dnsmasq net-tools
 +</code>
 +
 +===== Configuration serveur DNS de Dnsmasq =====
 +Éditer /etc/dnsmasq.conf
 +<file>
 +# Ne transmet pas les requêtes ne contenant pas un nom de domaine complet
 +domain-needed
 +# "no such domain" pour des adresses IP privées non référencées dans dnsmasq
 +bogus-priv
 +# Corrige du spam DNS Microsoft
 +filterwin2k
 +# Formate les requêtes DNS suivant l’interface réseau utilisée
 +localise-queries
 +
 +# Domaine dns local
 +local = /domaine-perso.fr/
 +# Interfaces DNS
 +interface = virtualeth0
 +exept-interface = lo
 +exept-interface = enp0sxx
 +exept-interface = wlx803xxxxx
 +exept-interface = wlox
 +# Adresses écoutées
 +listen-address = 127.0.0.1
 +listen-address = 10.10.10.1
 +listen-address = fd00::
 +# Toutes les interfaces réseau sont en mode serveur DNS c’est ce qui permet de démarrer le serveur DNS
 +bind-interfaces
 +# Ajoute le nom de domaine DNS aux entrées /etc/hosts
 +expand-hosts
 +# Non de domaine pour extensions "expand-hosts"
 +domain=domaine-perso.fr
 +# Taille du cache DNS
 +cache-size = 1000
 +# Désactive le "cache négatif" sur réponses "no such domain"
 +no-negcache
 +</file>
 +
 +Ajout du server DNS local à la liste des serveurs DNS de systemd-resolved.
 +Éditer /etc/systemd/resolved.conf
 +<file>
 +DNS=10.10.10.1 fd00::
 +</file>
 +
 +===== Relance de Dnsmasq =====
 +<code bash>
 +$ systemctl restart dnsmasq.service
 +$ systemctl enable dnsmasq.service
 +$ systemctl restart systemd-resolved.service
 +$ nmcli general reload
 +</code>
 +
 +===== Ouvrir avec le pare feu les ports DNS pour les rendre accessibles depuis le réseau lan =====
 +Ouvrir le port DNS sur l'interface d'ip xxx.xxx.xxx.xxx avec UFW. Si UFW est activé, ouvrez le port DNS 53, UDP.
 +<code bash>
 +$ sudo ufw allow from xxx.xxx.0.0/16 to any port 53 proto udp
 +</code>
 +
 +===== Tests du serveur DNS =====
 +Vérifier que le port 53 est utilisé par Dnsmasq
 +<code bash>
 +$ sudo lsof -i:53
 +COMMAND     PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
 +systemd-r 53916 systemd-resolve   12u  IPv4  99537      0t0  UDP localhost:domain
 +systemd-r 53916 systemd-resolve   13u  IPv4  99538      0t0  TCP localhost:domain (LISTEN)
 +dnsmasq   53732         dnsmasq    4u  IPv4  95141      0t0  UDP MachineUbuntu:domain
 +dnsmasq   53732         dnsmasq    5u  IPv4  95142      0t0  TCP MachineUbuntu:domain (LISTEN)
 +dnsmasq   53732         dnsmasq    6u  IPv4  95151      0t0  UDP localhost:domain
 +dnsmasq   53732         dnsmasq    7u  IPv4  95152      0t0  TCP localhost:domain (LISTEN)
 +dnsmasq   53732         dnsmasq    8u  IPv6  95153      0t0  UDP MachineUbuntu:domain
 +dnsmasq   53732         dnsmasq    9u  IPv6  95154      0t0  TCP MachineUbuntu:domain (LISTEN)
 +dnsmasq   53732         dnsmasq   10u  IPv6  95155      0t0  UDP MachineUbuntu:domain
 +dnsmasq   53732         dnsmasq   11u  IPv6  95156      0t0  TCP MachineUbuntu:domain (LISTEN)
 +</code>
 +
 +Vérifier que Dnsmasq écoute les requettes DNS sur les bonnes interfaces
 +<code bash>
 +$ sudo netstat -alnp | grep -i :53
 +tcp        0      0 127.0.0.53:53           0.0.0.0:              LISTEN      53916/systemd-resol
 +tcp        0      0 127.0.0.1:53            0.0.0.0:              LISTEN      53732/dnsmasq
 +tcp        0      0 10.10.10.1:53           0.0.0.0:              LISTEN      53732/dnsmasq
 +tcp6            0 fd00:::53               :::                   LISTEN      53732/dnsmasq
 +tcp6            0 fe80::b817:faff:fe21:53 :::*                    LISTEN      53732/dnsmasq
 +udp        0      0 127.0.0.53:53           0.0.0.0:                          53916/systemd-resol
 +udp        0      0 127.0.0.1:53            0.0.0.0:                          53732/dnsmasq
 +udp        0      0 10.10.10.1:53           0.0.0.0:                          53732/dnsmasq
 +udp        0      0 0.0.0.0:5353            0.0.0.0:                          772/avahi-daemon: r
 +udp6            0 fd00:::53               :::                               53732/dnsmasq
 +udp6            0 fe80::b817:faff:fe21:53 :::*                                53732/dnsmasq
 +udp6            0 :::5353                 :::                               772/avahi-daemon: r
 +</code>
 +
 +Vérifier que le poste de travail écoute les résolution DNS de Dnsmasq
 +<code bash>
 +$ resolvectl dns
 +Global: 10.10.10.1 fd00::
 +Link 2 (enp0sxx): yyyy:yyyy:yyyy::yyyy yyy.yyy.yyy.yyy
 +Link 3 (virtualeth0):
 +Link 4 (wlx803xxxxx): yyyy:yyyy:yyyy::yyyy yyyy:yyyy:yyyy::yyyy yyyy:yyyy:yyyy::yyyy yyy.yyy.yyy.yyy
 +Link 5 (wlox): yyy.yyy.yyy.yyy
 +</code>
 +
 +Vérifier la résolution DNS
 +<code bash>
 +$ dig MachineUbuntu +noall +answer
 +MachineUbuntu.                  0       IN      A       127.0.1.1
 +</code>
 +
 +<code bash>
 +$ dig MachineUbuntu.domaine-perso.fr +noall +answer
 +MachineUbuntu.domaine-perso.fr. 0       IN      A       127.0.1.1
 +</code>
 +
 +<code bash>
 +$ dig bidon.domaine-perso.fr +noall +answer
 +
 +</code>
 +
 +<code bash>
 +$ dig bidon +noall +answer
 +
 +</code>
 +
 +Éditer /etc/hosts pour définir les alias DNS
 +<file>
 +127.0.0.1 localhost
 +127.0.1.1 MachineUbuntu
 +
 +# Alias DNS
 +10.10.10.5 courriel
 +10.10.10.10 serveur
 +10.10.10.20 documentation
 +</file>
 +
 +Vérifier la résolution DNS ([[configuration_serveur_dns_pour_son_poste_de_travail#relance_de_dnsmasq|relancer Dnsmasq si nécessaire]])
 +<code bash>
 +$ dig courriel.domaine-perso.fr +noall +answer
 +courriel.domaine-perso.fr. 0     IN         10.10.10.5
 +</code>
 +
 +<code bash>
 +$ dig courriel +noall +answer
 +courriel.                  0     IN         10.10.10.5
 +</code>
 +
 +<code bash>
 +$ dig serveur.domaine-perso.fr +noall +answer
 +serveur.domaine-perso.fr. 0     IN         10.10.10.10
 +</code>
 +
 +<code bash>
 +$ dig serveur +noall +answer
 +serveur.                  0     IN         10.10.10.10
 +</code>
 +
 +<code bash>
 +$ dig documentation.domaine-perso.fr +noall +answer
 +documentation.domaine-perso.fr. 0     IN         10.10.10.20
 +</code>
 +
 +<code bash>
 +$ dig documentation +noall +answer
 +documentation.                  0     IN         10.10.10.20
 +</code>
 +
 +<code bash>
 +$ dig bidon.domaine-perso.fr +noall +answer
 +
 +</code>
 +
 +<code bash>
 +$ dig bidon +noall +answer
 +
 +</code>
 +
 +Résolution DNS externe :
 +<code bash>
 +$ dig google.com +noall +answer
 +google.com.              16    IN         216.58.223.110
 +</code>