État de l'art dans la résolution de noms LAN

Bonjour à tous, un des trucs qui m’étonne sur mon nouveau Debian, c’est l’impossibilité sur une install « par défaut » de résoudre un nom de machine sur mon réseau local. Rien de bien compliqué, ici, une Freebox qui fait routeur/DNS, un NAS Synology sur Ethernet, et quelques terminaux (PC, consoles, tablettes), dont certains connectés en Ethernet et d’autres en Wi-Fi… Je n’ai jamais passé trop de temps à configurer tout ça, ça fonctionnait tout seul.

Mon laptop Debian (via Wi-Fi) sait parfaitement résoudre les noms internet, il repère ma Freebox comme DNS, et je peux surfer directement. Par contre, un ping diskstation (Synology) me retourne une erreur de résolution de nom.

Renseignement pris, tout ceci sur le LAN fonctionne probablement sur Netbios et/ou Wins, je lis un peu de partout que c’est un protocole IBM popularisé il y a longtemps par Microsoft, qu’on aimerait bien le voir mourir, et je me dis que si mon Debian ne l’installe pas par défaut, c’est sûrement qu’il préconise quelque chose de mieux, peut-être plus sécurisé, ou plus standard (pour ne pas dire moderne). Savez-vous me dire ce qu’il en est, SVP ?

(Ou bien, c’est possible que je fasse un truc de travers, ou que j’aie un souci de configuration, je ne saurais dire… bref, je m’attends quand même à ce que ce genre de fonctionnalité soit permise sur son propre LAN)

1 J'aime

c’est normal. Ta box ne gère pas les noms locaux.
Si tu veux faire ça il te faut un DNS local, qui forwarde ensuite soit vers ta box (attention toutes les BOX françaises sont des DNS menteurs), ou vers dfes DNS externe à ton réseau.

Merci, tu peux développer ce point STP ?

Sur certaines requetes ils répondent 127.0.0.1, et donc tu ne peux atteindre l’url demandée.

en clair, une atteinte à la neutralité du réseau.
En plus de vendre les informations de tes requêtes.

Ah oui en effet, des blocages de résolution de nom appliqués sans qu’il y ait décision d’un juge ! :face_with_symbols_over_mouth:

Pour en revenir à ma question initiale : en effet la box ne fait pas DNS local, et je me retrouve avec ce choix :

  • Mettre mon propre DNS local : un peu galère, car à part la box, aucune machine n’est allumée 100% du temps.
  • Faire une liste des machines les plus utiles (box, NAS, PC principal) et mettre leur adresse dans le fichier hosts de tous les terminaux : un peu galère aussi, certains terminaux étant des Android, ou des consoles…
  • Changer mes habitudes et utiliser mDNS : c’est la solution que j’ai choisie… Je ne connaissais pas avant aujourd’hui, et je suis agréablement surpris de voir que la Freebox et le Synology sont déjà équipés en standard, de même que Debian !

Voici en quelques mots en quoi ça consiste : mDNS (Multicast DNS) est un mécanisme de gestion décentralisé des ressources sur un réseau local. Les équipements demandent un service à tout le monde (« hé les gars il y a une imprimante par ici ? » ou « hé les mecs c’est quoi votre nom et votre adresse IP ? » : Multicast = diffusion à tous), et les équipements sollicités répondent.

Tout ceci est fait dans le cadre d’un domaine fictif nommé .local, et j’étais donc hors des clous avec mon ping diskstation, il fallait demander ping diskstation.local, et là, bim :

$ ping diskstation.local
PING diskstation.local (192.168.1.250) 56(84) bytes of data.
64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=2.22 ms
64 bytes from 192.168.1.250: icmp_seq=2 ttl=64 time=1.08 ms
64 bytes from 192.168.1.250: icmp_seq=3 ttl=64 time=3.77 ms

--- diskstation.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.082/2.354/3.766/1.100 ms

Hé oui, j’ai appris à cette occasion que Debian Trixie avait mDNS actif par défaut, grâce au paquet avahi-daemon. Pour la petite histoire, il parait même que le choix de mettre avahi par défaut dans Debian a été fait au détriment de systemd.resolved, qui proposait aussi mDNS, car il arrivait qu’avoir les deux en parallèle pose des problèmes (Fedora avait pris la même décision peu avant). Il faut éditer /etc/avahi/avahi-daemon.conf pour spécifier ce que avahi publie à propos de votre Debian (par défaut : rien du tout) : man avahi-daemon.conf(5).

Plus d’infos : Avahi - Debian Wiki

Du coup, avahi répond parfaitement à mon besoin, j’ai juste à ajouter .local après mes noms d’hôtes.

Edit : l’ordre dans lequel mDNS intervient dans la résolution de nom est donné à la ligne hosts du fichier /etc/nsswitch.conf :

hosts:          files myhostname mdns4_minimal [NOTFOUND=return] dns

Ici dans l’ordre :

  1. Files signifie qu’on regarde d’abord dans /etc/hosts
  2. myhostname c’est la machine elle-même
  3. mdns4_minimal représente mDNS
  4. dns en dernier recours on fait une bonne vieille résolution de nom par DNS

… si j’ai bien tout compris :thinking:

Dans ce cas, tu vas devoir utiliser le fichier /etc/hosts qui est aussi fait pour ça.
Mais tu vas devoir le maintenir à la main sur toutes tes machines.

Le seul véritable problème de mDNS c’est la sécurité.

Quels sont les risques, plus précisément STP ?

Propagation d’information qui peuvent être collectée par toute machine compromise, ou même un simple javascript sur un navigateur.
Avahi a pas mal de vulnérabilités: https://www.cve.org/CVERecord/SearchResults?query=avahi

Sur CIS Workbench, il est conseillé de désactiver avahi.
c’est le cas chez moi

Si ça se trouve, l’implémentation mDNS de systemd-resolved est moins buggée, il faudrait que je regarde si j’arrive à la faire marcher. La dernière fois que j’ai installé systemd-resolved, je n’avais plus le DNS.

Edit : il a quelques failles également sur CVE systemd-resolved

Je viens de finir la conf d’un DNS interne sur mon Synology, et je vais probablement arrêter mDNS.

Deux sujets restent ouverts :

  • Installer Avahi m’a quand même permis de prendre conscience que nombre d’équipements sur mon réseau publiaient des infos mDNS sans que je sois au courant : le Synology, les deux boîtiers Freebox (serveur et player), et même les téléphones mobiles. Comme c’est rappelé ci-dessus, ces publications sont autant d’indications utiles pour cartographier les services et chercher les vulnérabilités. Je vais donc continuer d’utiliser Avahi en mode browse, pour m’assurer que j’arrive à désactiver un par un ces broadcasts inutiles.
  • Le DNS du Synology ne permet pas d’utiliser du DOH/DOT (DNS over HTTPS/DNS over TLS), et je reste donc vulnérable à une pratique douteuse consistant pour les FAI à intercepter les requêtes DNS pour se substituer au destinataire. Je n’ai pas eu vent que Free s’amusait à faire ça, mais Bouygues Telecom l’a fait dans le passé, paraît-il. J’aviserai si jamais ça devient nécessaire, mais pour l’instant je vais rester comme ça. Pendant mes recherches, je suis tombé sur ce site que j’ai trouvé très utile, il recense les vrais DNS libres, tout en épinglant ceux qui ressemblent à du libre mais ne le sont pas : Wiki de sebsauvage.net - Résolveurs DNS Alternatifs

C’est le problème avec Avahi, c’est pour ça qu’il est très déconseillé sur des serveurs.

Non, c’est illégal en France car c’est apparenté à du man in the middle.

Si ton DNS (est-ce Bind?) est configuré, normalement tu résous tout ce qui constitue le local, et tu forwardes vers des serveurs externe qui ne sont pas ceux de ton fai ( ni la box). Et il n’y a pas de substitution.
Cependant, rien n’empêche effectivement ton FAI de sniffer tes requêtes DNS externes.
Personnellement j’utilise une configuration Bind9 et kea pour le dhcp.
Le bind9 utilise des DNS externe qui sont hors juridiction française, et qui ne trace pas mes requêtes.
Ils ont aussi la capacité DOH/DOT mais je ne l’ai pas encor configuré.
L’idée c’est de rester en DNS port 53 en interne (pour le moment) et forwarder en DOH/DOT vers les DNS externes.

j’utilise aussi depuis pas mal de temps :slight_smile: A surveiller pour les mises à jour (j’ai changé 3Q fois de DNS externes depuis que j’ai dé"couver ce site il y a quelques temps.

Non ce n’est pas Bind, c’est le paquet standard DNS de Synology, mais en tout cas oui il est configuré comme tu dis. La Freebox (DHCP) donne comme DNS principal le Synology, qui résoud les adresses locales avec un domaine « home », pour le reste il redirige vers des DNS externes hors de Free.

C’est bind 9.16.34 (sur mon Synology DS418.