Aller au contenu

Configuration De Bind (Dns)


Messages recommandés

Bonjour,

Afin de parfaire l'indépendance de mon accès internet, je me suis mis en tête d'installer un serveur DNS sur le NAS et comme BIND semble être le plus utilisé, va pour BIND.

Pour la configuration, je m'aide de http://www.nslu2-lin...rimaryDNSServer et http://blog.deadcode...rver-with-bind/

À noter que j'ai une IP dynamique, fixée en quelque sorte par dyndns.org et le service de synology

Je souhaite utiliser BIND pour :

- être le resolver DNS pour toutes les machines de mon LAN. Certaines ont une ip fixée par mon routeur livebox, d'autres se connectent de manière occasionnelle (smartphone) et se voient donc attribuer une IP temporaire par le DHCP de la livebox.

- être le resolver DNS de toutes les machines se connectant en VPN. (serveur VPN du nas)

- j'aurais bien aimé pouvoir être le resolver de machines hors VPN mais je ne vois pas comment cela serait possible si ce n'est à indiquer 'trucmuche.dyndns.org' dans le champ des serveurs DNS, ce qui reviendrait à créer une belle boucle infinie. je prends les idées ceci dit…

- "héberger" mes propres noms de domaine afin de pouvoir modifier leur zone en local ; actuellement une petite dizaine de ndm.

- si tout marche bien et ne consomme pas trop de ressources système, me mettre en resolver OpenNic public.

0/ installation

Faite via IPKG, ok.

Le fichier /opt/etc/named/rndc.key a été généré après l'installation comme demandé.

1/ /opt/etc/named/named.conf - http://snipurl.com/24hzg8z

La définition de l'acl "home" est correcte : mon LAN est bien sur 192.168.1.0/24 (+ le nas évidemment)

Je l'ai mis en mode "forward first" pour gagner du temps lors de la résolution et mise en cache de domaines non encore requis.

Pour l'instant c'est le serveur de google qui est en forwarder mais je suis ouvert à toute proposition de serveur un poil plus neutre. (et non "menteur" donc pas opendns)

C'est dans la définition des zones que j'ai un peu de mal, notamment pour celles-ci :


//only allow local network to query mydomain.com to preven leaking local network information to public

zone "mydomain.com" {

	 type master;

	 file "db.mydomain.com";

	 allow-query { "home"; };

	 allow-update { none; };

	 notify yes;

};

zone "1.168.192.in-addr.arpa" {

	 type master;

	 file "db.192.168.1.rev";

	 allow-query { "home"; };

	 allow-update { none; };

	 notify yes;

};

Que faut-il que je mette pour la zone de "mydomain.com" ? Faut-il que je rentre ici une zone pour chacun des domaines que j'héberge ou seulement le principal (celui qui est configuré dans le DSM) ? Ce dernier n'est pas un vrai ndm mais un dyndns.org comme dit en intro.

Que faut-il que je mette pour la zone "1.168.192.in-addr.arpa" ? Dois-je décrire l'ensemble de mon LAN ? C'est déjà géré (et correctement) par le routeur de la livebox avec certaines IP locales fixes et le reste en DHCP.

2/ /opt/etc/named/db.localhost

Fichier standard repris de http://blog.deadcode...rver-with-bind/

3/ /opt/etc/named/db.localhost.rev

Fichier standard repris de http://blog.deadcode...rver-with-bind/

4/ /opt/etc/named/root.servers

Fichier standard repris de FTP.INTERNIC.NET

5/ /opt/etc/named/db.mydomain.com

À remplir quand j'aurais compris que mettre à ce sujet dans le named.conf

5.x/ /opt/etc/named/db.autre-domaine-heberge.tld

À créer et remplir pour chacun de mes autres domaines (des vrais domaines cette fois, pas un dyndns.org) selon le modèle du 5/

6/ /opt/etc/named/db.192.168.1.rev

À remplir quand j'aurais compris que mettre à ce sujet dans le named.conf

Lien vers le commentaire
Partager sur d’autres sites

je ne suis pas certain que cela corresponde.

J'ai l'impression que c'est plus un cache DNS + DHCP. Le cache, je l'ai déjà sur mon laptop (os x) et j'imagine qu'il y en a un dans busybox.

Quant au DHCP, celui fourni par la livebox me convient tout à fait.

Enfin, si j'ai bien suivi, je ne pourrais pas éditer directement sur le NAS les zones dns de mes domaines. (pas le plus important mais bon)

Pour la partie de résolution de noms, mon objectif est quand même de pouvoir de passer totalement de serveurs DNS externes pour limiter au max tout risque de censure et profilage.

Après, que j'ai un cache DNS en plus, pour prolonger à l'envie les TTL défini par les domaines, oui je veux ! Mais j'imagine que BIND sait faire ça, non ?

Bref, je ne absolument pas contre une solution plus légère, au contraire même mais il semblerait que dnsmasq ne permette pas de faire tout ce que je souhaite.

Lien vers le commentaire
Partager sur d’autres sites

je ne suis pas certain que cela corresponde.

J'ai l'impression que c'est plus un cache DNS + DHCP. Le cache, je l'ai déjà sur mon laptop (os x) et j'imagine qu'il y en a un dans busybox.

Quant au DHCP, celui fourni par la livebox me convient tout à fait.

Tu as du lire un peu vite: il s'agit d'un DNS forwarder (l'équivalent d'un proxy) faisant donc fonction de serveur DNS et qui dispose en outre d'une fonctionalité de serveur DHCP *optionnelle*.

Il dispose en effet d'un cache intégré mais ce n'est pas l'essentiel.

Enfin, si j'ai bien suivi, je ne pourrais pas éditer directement sur le NAS les zones dns de mes domaines. (pas le plus important mais bon)

Tu peux ajouter, soit en ligne de commande, soit dans le fichier de configuration, soit directement dans le fichier host des enregistrement hosts qui seront pris en compte de façon prioritaire pour la résolution sans se référer aux serveurs DNS externes

Pour la partie de résolution de noms, mon objectif est quand même de pouvoir de passer totalement de serveurs DNS externes pour limiter au max tout risque de censure et profilage.

Bigre! Il va te falloir mettre *tous* les enregistrement hosts que tu risque d'utiliser dans ta configuration locale. (cela dit dnsmasq permet de faire ce genre de choses, suffit de ne pas lui spécifier d’adresses de serveurs DNS externes).

Bon courage en tout cas pour déclarer en local toute ces adresses (avec le risque de ne pas prendre en compte des changements éventuels par la suite)

Après, que j'ai un cache DNS en plus, pour prolonger à l'envie les TTL défini par les domaines, oui je veux ! Mais j'imagine que BIND sait faire ça, non ?

Je n'ai pas dit ça, mais bind est assez usine à gaz.

Je pensais simplement qu'a partir du moment ou il existe un outil léger qui répond à toutes tes specs, je ne vois pas l'intéret d'aller s'emmm* avec bind.

Bref, je ne absolument pas contre une solution plus légère, au contraire même mais il semblerait que dnsmasq ne permette pas de faire tout ce que je souhaite.

Je pense que tu le sous-estime, lis la doc et la FAQ et tu verras.

<PS> petit bemol, je n'ai pas vérifié si dnsmasq tournait sur DSM mais çà m'étonnerait que non.

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Décidément je dois être complètement taré :-/

Je ne comprends toujours pas comment ce petit bout de chou peut faire tout ça et encore moins les info que j'ai pu glaner. Ça ne parle quasiment que de la fonction DHCP et de configuration de réseaux locaux, de fichiers host, d'iptable, etc.

Bref, je capte rien.

À la limite, si tu es dispo ce soir ou demain pour un skype, je veux bien parce que je sens bien que tu dois avoir raison mais que je passe à côté de quelque chose de fondamental.

Lien vers le commentaire
Partager sur d’autres sites

Je ne comprends toujours pas comment ce petit bout de chou peut faire tout ça et encore moins les info que j'ai pu glaner. Ça ne parle quasiment que de la fonction DHCP et de configuration de réseaux locaux, de fichiers host, d'iptable, etc.

Et pourquoi ne pas simplement le tester?

D'autant plus que c'est basique:

Installation:


root@fserv> ipkg install dnsmasq

Installing dnsmasq (2.62-1) to root...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable/dnsmasq_2.62-1_arm.ipk

Configuring dnsmasq



To complete the installation, you should check /opt/etc/dnsmasq.conf,

and then run /opt/etc/init.d/S56dnsmasq to start dnsmasq

Lancement initial du démon:
/opt/etc/init.d/S56dnsmasq
Et avec la configuration de base, *sans rien modifier*, il est déja capable de faire le travail de proxy DNS:

root@fserv> nslookup www.google.com localhost

Server: localhost

Address: 127.0.0.1#53


Non-authoritative answer:

www.google.com canonical name = www.l.google.com.

Name: www.l.google.com

Address: 173.194.67.147

Name: www.l.google.com

Address: 173.194.67.99

Name: www.l.google.com

Address: 173.194.67.105

Name: www.l.google.com

Address: 173.194.67.103

Name: www.l.google.com

Address: 173.194.67.104

Name: www.l.google.com

Address: 173.194.67.106

En activant le log ("log-queries") dans le fichier de config, on peut constater que c'est bien lui qui répond et transmet au dns déclaré dans la conf DSM lorsqu'il n'a pas le nom en cache ou dans sa configuration:

root@fserv> tail /var/log/messages

Aug 1 22:08:32 dnsmasq[4700]: read /etc/hosts - 3 addresses

Aug 1 22:08:33 dnsmasq[4700]: query[A] www.google.com from 127.0.0.1

Aug 1 22:08:33 dnsmasq[4700]: forwarded www.google.com to 212.27.40.240

Aug 1 22:08:33 dnsmasq[4700]: forwarded www.google.com to 212.27.40.241

Aug 1 22:08:33 dnsmasq[4700]: reply www.l.google.com is 173.194.67.147

Aug 1 22:08:33 dnsmasq[4700]: reply www.l.google.com is 173.194.67.99

Aug 1 22:08:33 dnsmasq[4700]: reply www.l.google.com is 173.194.67.105

Aug 1 22:08:33 dnsmasq[4700]: reply www.l.google.com is 173.194.67.103

Aug 1 22:08:33 dnsmasq[4700]: reply www.l.google.com is 173.194.67.104

Aug 1 22:08:33 dnsmasq[4700]: reply www.l.google.com is 173.194.67.106

Ensuite, tu n'a plus qu'a lire la doc et configurer le fichier de config ("/opt/etc/dnsmasq.conf") suivant tes besoins (pre-définition d'addresse de host statiques, non forwardés aux DNS externe voire désactivation totale des requetes externes)

C'est franchement pas compliqué. (pour info je ne connaissais même pas le produit juste avant de faire ma réponse à ton premier message, quelques recherches google m'ont suffit pour me débrouiller.).

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

Dnsmask ne fait que forwarder les requêtes dns, il est incapable de résoudre un nom de domaine sans l'aide d'un serveur externe. Bind oui (et en plus il sait résoudre les noms locaux (il suffit de lui définir les zones)).

Si je lis bien la manpage, dnsmask forwarde les requetes DNS *uniquement* si il ne dispose pas déjà dans sa configuration d'une définition de l'enregistrement demandé.

Ceci qui peut être réalisé par les paramètres "host-record" dans l'un de ses fichiers de configuration (ou en ligne de commande)

Les entrées de /etc/hosts sont également optionnellement prises en compte ainsi que celles des fichiers indiqués par les options "addn-hosts" si présentes

Toutes les options documentées dans la manpage entre les sections "-A, --address" et "--dns-rr" montrent que dnsmask peut réaliser en direct sans forward une grande partie des fonctions de serveur DNS.

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

J'utilise dnsmasq depuis un bout de temps sur mon NAS, surtout qu'il est intégré par défaut au DSM (/usr/syno/sbin/dnsmasq).

Nul besoin d'IPKG, il manque juste une interface intégrée au DSM pour le configurer (ça sent bon le paquet SynoCommunity).

Pour ma part il me sert principalement à résoudre des noms internes comme externes, suffit d'ouvrir le port 53.

Très pratique pour sécuriser des pages web avec un reverse proxy, le nom n'existe que si le DNS est paramétré sur le client.

Il est aussi très utile pour blacklister les banner farms et autres service publicitaires. J'utilise une blacklist de 14000 enregistrements, j'ai eu peur pour les performances au début mais en fait c'est très réactif.

Le cache DNS est très pratique aussi. Étant chez Free ça m'évite d'aller tout le temps taper dans les DNS de mon fournisseur d'accès (j'ai une Freebox v5).

Je n'utilise pas le DHCP, mais dnsmasq fait aussi PXE et TFTP qui peuvent être très utile pour booter sur le réseau. Il faudrait que je teste ça avec WAIK pour faire des sauvegardes complètes de machines Windows.

Bref je n'ai pas lu tout le man mais j'ai été agréablement surpris quand j'avais mis la main dessus pour configurer le relai DNS.

Modifié par PiwiLAbruti
Lien vers le commentaire
Partager sur d’autres sites

J'utilise dnsmasq depuis un bout de temps sur mon NAS, surtout qu'il est intégré par défaut au DSM.

Nul besoin d'IPKG, il manque juste une interface intégrée au DSM pour le configurer (ça sent bon le paquet SynoCommunity).

Damned, et dire que je n'ai meme pas fait gaffe que je l'avais sous la main!

La man page pour les intéressés :

Euh .. J'avais déja donné le lien :P

Lien vers le commentaire
Partager sur d’autres sites

Avec bind, on peut résoudre Toto.fr sans spécifier nulle part un serveur dns qui sera interrogé si il n'est pas dans les zones déclarées du serveur? Il fait comment? Un Whois pour récupérer les ns puis interrogation directe des ns pour résoudre le domaine?

Oui, toto.fr est résolu sans demander à un autre serveur dns (du moins au sens habituel du terme). Il interroge les serveurs racine.

Pas de whois, bien entendu !

Si je lis bien la manpage, dnsmask forwarde les requetes DNS *uniquement* si il ne dispose pas déjà dans sa configuration d'une définition de l'enregistrement demandé.

Ceci qui peut être réalisé par les paramètres "host-record" dans l'un de ses fichiers de configuration (ou en ligne de commande)

Les entrées de /etc/hosts sont également optionnellement prises en compte ainsi que celles des fichiers indiqués par les options "addn-hosts" si présentes

Toutes les options documentées dans la manpage entre les sections "-A, --address" et "--dns-rr" montrent que dnsmask peut réaliser en direct sans forward une grande partie des fonctions de serveur DNS.

c'est bien ce que je dis ! il forwarde uniquement s'il n'a pas, c'est-à-dire tout sauf les hôtes locaux, en gros.

extrait de la page de man :

dnsmasq est un serveur DHCP et DNS à faible empreinte mémoire. Il offre à la fois les services DNS et DHCP pour un réseau local (LAN).

Dnsmasq accepte les requêtes DNS et y répond soit en utilisant un petit cache local, soit en effectuant une requête à un serveur DNS récursif externe (par exemple celui de votre fournisseur d'accès internet). Il charge le contenu du fichier /etc/hosts afin que les noms locaux n'apparaissant pas dans les DNS globaux soient tout de même résolus, et assure également la résolution de nom pour les hôtes présents dans le service DHCP.

J'utilise dnsmasq dans mon routeur (wrt54gl) depuis fort longtemps et je vois bien comment il fonctionne. C'est en fait un cache dns qui permet de résoudre les noms locaux (et notamment ceux définis par le dhcp, ce qui est bien pratique). Mais ce n'est en aucun cas un serveur dhcp, puisqu'il ne peut pas par lui même résoudre des noms autres que locaux ou figurant dans une liste.

Pour finir, un autre extrait du man :

“Dnsmasq is a DNS query forwarder: it it not capable of recursively answering arbitrary queries starting from the root servers but forwards such queries to a fully recursive upstream DNS server which is typically provided by an ISP.”

Ça dit bien ce que ça veut dire !

Donc pour avoir un serveur dns qui ne ment pas, il faut un vrai serveur dns comme bind.

Lien vers le commentaire
Partager sur d’autres sites

Petite correction :

Mais ce n'est en aucun cas un serveur dhcp dns, puisqu'il ne peut pas par lui même résoudre des noms autres que locaux ou figurant dans une liste.

Apparemment il existe déjà : http://forum.synolog...ef677f81#p85673 mais ne semble plus maintenu.

Pas besoin de l'installer, dnsmasq est intégré au DSM dans /usr/syno/sbin/dnsmasq.

Lien vers le commentaire
Partager sur d’autres sites

c'est bien ce que je dis ! il forwarde uniquement s'il n'a pas, c'est-à-dire tout sauf les hôtes locaux, en gros.

Désolé, je ne suis pas toujours très clair:

Rien n'oblige de se limiter aux host locaux, on peut mettre ce que l'on veux dans "/etc/hosts".

Et même, éventuellement, dans d'autres fichiers hosts supplémentaires spécifiques à dnsmasq comme indiqué dans le man:

-H, --addn-hosts=<file>

Additional hosts file. Read the specified file as well as /etc/hosts. If -h is given, read only the specified file. This option may be repeated for more than one additional hosts file. If a directory is given, then read all the files contained in that directory.

Dnsmasq saura par suite aussi répondre aux requetes DNS concernants ces hosts-la sans en référer à un DNS externe.

Donc voila pourquoi je trouve pour ma part qu'il mérite quand même d'être qualifié de "serveur DNS" (light et a fonctionnalités réduites j'en conviens, ce n'est pas BIND ) et il devrait répondre au besoin exprimé par le post initial)

Mais, je reconnais ce n'est que du pinaillage sémantique, donc pas très grave.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.