Forum Linux.debian/ubuntu problème - DNS configuration - dnsmasq

Posté par  . Licence CC By‑SA.
Étiquettes :
2
21
oct.
2024

Bonjour

J'espère que vous vous portez bien.

Je voudrais vous demander comment configurer un server Raspberry Debian comme seul DNS pour les requêtes sur le net.
Mon ordinateur portable est configuré avec, principalement, Windows 11, et Mint (et ai aussi installé Fedora et Kali).

J'ai, avant de vous solliciter, testé plusieurs solutions via le web, mais sans succès après plusieurs heures de recherches et de test. Il y a longtemps j'avais réussi la "mission" avec bind9 mais ai perdu les données de configuration… soit.

Première chose, pour un usage privé, dnsmasq est-il bien une bonne et plus simple solution que bind9 (je suppose que oui)?

J'ai installé les packets suivants :
- dnsmasq
- ldnsutils
- dnsutils.

Dans le fichier : /etc/dnsmasq.conf, j'ai ajouté les lignes suivantes (trouvées avec des exemples sur le web)

"
port=53
domain-needed
bogus-priv
strict-order
listen-address=127.0.0.1,192.168.1.2 #the address of my Raspberry server
interface=eth0 #the correct interface returned by ifconfig
cache-size=1000
bind-interfaces
expand-hosts
"

J'ai vérifié que le service DNS était bien actif avec la commande :

  • systemctl status dnsmasq qui retourne bien : "enabled" et "active (running)"

J'ai ensuite utilisé la commande suivante pour vérifier la syntaxe du fichier de configuration :

dnsmasq --test
qui retourne le résultat suivant :
syntax check ok

Mais, avec tout cela, quand je configure mon laptop avec le server comme principal DNS, je ne sais plus effectuer de recherche sur internet, ni même faire un "apt update" avec mon serveur Raspberry.
Si je commente toutes les lignes évoquées, ça fonctionne à nouveau (et mon laptop fonctionne avec le serveur comme gateway et le DNS de ma box).

Donc, je me demande ce que je rate, ce que j'ignore … et que faire surtout pour résoudre la problématique?

Que devrais-je aussi peut-être configurer dans ces fichiers :

  • /etc/hosts
    Actuellement j'ai:
    127.0.0.1 raspberry_server
    192.168.1.2 raspberry_server

  • /etc/resolv.conf
    Actuellement j'ai:
    nameserver 127.0.0.1
    nameserver 192.168.1.2 #ip de my Raspberry

  • /etc/hostname
    Actuellement le nom est "raspberry_server"

  • /etc/network/interfaces
    Actuellement j'ai:
    dns-nameservers 192.168.1.2

Je précise que j'ai activé le forwarding avec ceci:

iptables -t nat -A POSTROUTING -o ethO -j MASQUERADE
et décommenté la ligne

net.ipv4.ip_forward=1
dasn le fichier /etc/systcl.conf .

Pourriez-vous m'apporter votre aide?

Je vous en remercie beaucoup par avance !

Bonne journée.

ultimate

  • # Ça ne peut pas fonctionner…

    Posté par  (site web personnel) . Évalué à 3 (+1/-0).

    Dans le désordre :

    • Je ne vois pas à quoi servirait le forwarding/masquerading.
    • dnsmasq s'appuie sur un ou plusieurs serveurs « upstream » qui vont répondre à ses questions, et si /etc/resolv.conf pointe vers dnsmasq, ça me semble compliqué… (localement, j'ai un dnsmasq qui fournit DHCP+DNS pour un sous-réseau, le tout sur une machine qui pointe vers un unbound d'une autre machine + la box du FAI en fallback).

    Quelques possibilités :

    • Faire pointer dnsmasq vers le DNS de la box/du datacenter.
    • Utiliser unbound pour la résolution DNS, ce qui a le mérite d'éviter les réponses foireuses des DNS menteurs (cf. « la main rouge »).

    La seconde solution… est autosuffisante (pas besoin de dnsmasq).

    Debian Consultant @ DEBAMAX

    • [^] # Solution ?

      Posté par  . Évalué à 1 (+0/-0).

      Bonjour Cyril,

      Le forwarding est lié au fait que mon serveur est aussi un pare-feu (configuré avec netfilter et règles iptables) et je souhaite donc que ce serveur soit ma gateway (actuellement le cas), et que ce soit par l'occasion lui qui fasse office de serveur DNS pour interroger les root DNS et top level domains…

      Navré mais je ne comprends pas ce que tu veux dire quand tu dis que /etc/resolv.conf pointe vers dsnmasq est compliqué? Comment, en quoi? Je n'ai pas besoin de service DHCP car j'ai une ip fixe pour savoir paramétrer mon serveur avec Putty.

      je réitère donc ma question de savoir comment paramétrer un serveur DNS (peu importe le programme) sur mon Raspberry qui se chargera de toutes les requêtes. Cela me permettrait d'éviter de le faire via mon provider pour une question de principe. Je voudrais aussi mieux connaître le fonctionnement du serveur DNS en analysant son fonctionnement directement sur le serveur.

      Aussi, je voudrais savoir comment le sécuriser et où se trouvent les logs pour les effacer si besoin.

      Merci par avance et belle journée.

      • [^] # Re: Solution ?

        Posté par  . Évalué à 4 (+1/-0).

        faire progressif

        1°) laisser ta box gerer les IP et la gateway et mettre le DNS sur ton RPi
        2°) verifier que cela fonctionne

        en gros to PC demande au DNS (le RPI) mais sort ensuite directement par la box

        ensuite seulement tu testeras que ton RPi puisse faire "firewall/routeur"
        et là ce n'est plus dnsmasq qui sera ton outil, mais plutot iptables/ufw/nftables pour activer le forward entre les interfaces LAN et WAN de ton RPi

        il te faudra alors avoir 2 reseaux sur le RPi (le coté box - WAN, et le coté PC - LAN), activer le ip_forward pour que le RPi puisse passer les paquets de l'une à l'autre des interfaces, et un parefeu pour filter ce qui doit ou non passer de l'un à l'autre, avec ou sans NAT, etc

      • [^] # Re: Solution ?

        Posté par  (site web personnel) . Évalué à 2 (+0/-0).

        Le forwarding est lié au fait que mon serveur est aussi un pare-feu (configuré avec netfilter et règles iptables) et je souhaite donc que ce serveur soit ma gateway (actuellement le cas), et que ce soit par l'occasion lui qui fasse office de serveur DNS pour interroger les root DNS et top level domains…

        OK, donc aucun rapport avec le sujet initial.

        Navré mais je ne comprends pas ce que tu veux dire quand tu dis que /etc/resolv.conf pointe vers dsnmasq est compliqué? Comment, en quoi?

        Si dnsmasq utilise /etc/resolv.conf pour savoir à qui poser les questions, et si /etc/resolv.conf pointe vers dnsmasq, ça s'appelle une boucle (aka. « problème de bootstrap », voir également « poule vs. œuf »). L'option log-queries de dnsmasq est très pertinente pour vérifier le comportement côté DNS.

        Je n'ai pas besoin de service DHCP car j'ai une ip fixe pour savoir paramétrer mon serveur avec Putty.

        La précision sur mon utilisation de dnsmasq n'avait pas pour vocation à attirer l'attention sur DHCP, mais sur l'aspect « je pose les questions DNS à d'autres machines »…

        je réitère donc ma question de savoir comment paramétrer un serveur DNS (peu importe le programme) sur mon Raspberry qui se chargera de toutes les requêtes.

        J'ai répondu à cette question…

        Aussi, je voudrais savoir comment le sécuriser et où se trouvent les logs pour les effacer si besoin.

        La réponse habituelle (pour les deux composants mentionnés) est journalctl, sauf configuration contraire.

        Debian Consultant @ DEBAMAX

  • # DNSmasq - status error

    Posté par  . Évalué à 1 (+0/-0).

    Bonjour Neox,

    J'espère avoir bien compris ta réponse, et t'en remercie.

    1) Je cherche justement à ce que le DNS soit le serveur Raspberry et non plus la box justement
    2) Via le DNS de la box ça fonctionne, forcément où je ne serais plus venir vous écrire …

    Oui j'ai conscience que la gateway de mon Raspberry est ma box, tel que je l'ai paramétré.
    Mon firewall (netfilter configuré avec Iptables, fonctionnel depuis longtemps) est bien configuré, et même lorsque je le désactive pour testing, ça n'y change rien.
    Le forwarding est bien configuré comme explicité précédement.

    Par contre, lorsque j'utilise la commande "systemctl status dnsmasq", je reçois le message suivant : "config error is REFUSED (EDE:not ready"

    Comment cela se fait-il ?
    Je réitère, comment configurer l'ensemble pour que mon PC portable passe par le Raspberry pour interroger les serveurs DNS (root, top level domains …) qui repassera par la gateway de ma box (mais sans utilise son service DNS à elle) ?

    Merci encore !

  • # DNSmasq

    Posté par  . Évalué à 1 (+0/-0).

    Cyril,

    Dans mon fichier resolv.conf j'ai ceci :
    nameserver 192.168.1.2 (l'adresse de mon serveur raspberry ou je tente de configurer le DNS).
    Est-ce un problème? Si oui, que devrais-je alors faire ?

    J'avais justement ajouté l'option log-queries (pointant si je ne me trompe pas vers /var/log/messages mais le fichier ne semble pas créé).

    Oui OK pour la question DHCP on est d'accord, merci.

    "J'ai répondu à cette question…" :
    pardon, je ne maîtrise pas certaines bases.
    Ma question portait sur les options correctes à paramétrer dans le fichier /etc/dsnmasq.conf et pourquoi je reçois les erreurs précédemment mentionnées pour résoudre cela?
    Qu'est-ce que unbound, je vois que c'est un packet installable mais faut-il le configurer, à quoi et comment fonctionne-t-il ?

    Oui j'utilise la commande journalctl, j'y obtiens, entre autres (moins pertinents) :
    "DNS: dns_check: DNS error: -3, Temporary failure in name resolution
    broken trust chain resolving 'debian.pool.ntp.org/NS/IN': 2604:1380:4601:5501::2:1#53"

    Merci pour les nouveaux éclaircissements.

  • # DNSmasq - ok

    Posté par  . Évalué à 1 (+0/-0).

    Tiens, j'ai installé le package "openresolv.conf" et lancé la command resolv.conf -u (qui a juste une ligne configurée nameserver 127.0.0.1 (j'avais avant celle de mon serveur également) et ça fonctionne sur windows avec juste l'adresse de mon serveur paramétré dans ma configuration réseau.
    Le problème était tout bête semble-t-il, et le problème résolu ! :-)

    Petite autre question, qu'est-ce que dnssec ? Faut-il l'ajouté dans le fichier de configuration ?
    Est-ce que cela sécurise quelque chose ?

    Merci

  • # DNSmasq - logs et sécurité

    Posté par  . Évalué à 1 (+0/-0).

    il me reste à savoir où se stocke les logs de DNSmasq, et savoir si il faut faire quelque chose pour sécuriser le service ? Merci à nouveau

  • # PiHole ?

    Posté par  (site web personnel, Mastodon) . Évalué à 1 (+0/-0).

    Tu parles de Raspberry Pi et de dnsmasq. Dans ce cas je pense que tu devrais regarder du côté de Pi-Hole qui fournit une distribution basée sur Debian prête à l'emploi avec une interface de gestion web très efficace.

    Elle permet de régler finement son DNS interne, les relais à utiliser, de faire de la résolution interne, du filtrage des pubs et trackers, et même de gérer le DHCP de son réseau (penser à désactiver celui de sa box dans ce cas). Bref, une solution parfaite.

    Je l'utilise avec bonheur depuis plusieurs années sans rencontrer le moindre problème.

  • # Pi-Hole

    Posté par  . Évalué à 2 (+1/-0).

    Bonjour Nanawel,

    Ah super, bon savoir, merci pour l'information, je vais m'intéresser un peu à tout cela, même si pour l'instant mon serveur fait ce que je souhaite, mais qui sait pour une prochaine fois ….

    Merci !
    Bonne journée,
    ultimate

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.