GNU/Linux >> Tutoriels Linux >  >> Linux

Configuration de votre propre service de noms (DNS) avec ISPConfig

Internet fonctionne avec des numéros IP et pour passer d'un nom de domaine à son adresse IP, le DNS du système de noms de domaine est utilisé. Vous pouvez configurer votre propre service de noms ou utiliser, par exemple, le service de noms de votre hébergeur. Dans tous les cas, vous configurez un mappage d'un nom de domaine complet à un numéro IP. Par exemple, FQDN mail.howtoforge.com a l'adresse 78.46.214.220.

Ce tutoriel utilise le nom de domaine xyzzy.tld. Le nom d'hôte est un nom donné à un hôte, par exemple, foobar. La combinaison du nom d'hôte et du nom de domaine donne le FQDN du nom de domaine complet, par exemple, foobar.xyzzy.tld.

Si le domaine doit être utilisé en dehors de votre propre organisation, le domaine doit être enregistré. Le bureau d'enregistrement demande deux serveurs de noms. Au moins certains bureaux d'enregistrement autorisent l'enregistrement en premier et les serveurs de noms peuvent être donnés plus tard, peut-être jusqu'à un mois plus tard. Mais le bureau d'enregistrement menace de révoquer votre nom de domaine à moins qu'il n'obtienne deux serveurs de noms fonctionnels.

Si vous souhaitez exécuter vos propres serveurs de noms, vous avez besoin de deux hôtes de serveurs de noms. Si vous n'avez qu'un seul hôte, vous pouvez le configurer pour exécuter des sites Web, des e-mails, une base de données, etc. et un service de noms, mais le deuxième serveur de noms doit être organisé d'une manière ou d'une autre.

Si vous fournissez un service de noms uniquement au sein de votre propre organisation, vous n'avez pas besoin d'enregistrer le domaine et vous ne pouvez avoir qu'un seul serveur de noms.

La partie ISPConfig de ce didacticiel suppose qu'une configuration multiserveur a été installée, avec un hôte avec tout sauf le service de noms et deux hôtes pour le service de noms. Trois hôtes en tout. Les noms d'hôte sont web, ns1 et ns2. Vous ne pouvez utiliser que deux hôtes si Web exécute également un service de noms et que l'autre hôte est également un serveur de noms.

Le service de noms a des enregistrements, de plusieurs types. Définissez A-records sur le numéro IP de vos hôtes. Si IPv6 est utilisé, il s'agit d'un enregistrement AAAA. Si vous avez trois hôtes, configurez trois enregistrements A. Définissez deux enregistrements NS sur les noms d'hôte du serveur de noms.

Collectez les informations nécessaires comme suit :

hôte ou domaine Adresse IP Utilisé pour
xyzzy.tld 192.168.260.71 adresse de la page Web
Web 192.168.250.71 serveur Web
ns1 192.168.250.73 serveur de noms
ns2 192.168.258.75 serveur de noms

1.1 Utiliser ISPConfig 3.x

Installez les trois hôtes et ISPConfig sur eux à l'aide de la configuration multiserveur. J'ai utilisé Debian GNU/Linux 9.5 et ISPConfig 3.1.12 pour tester ce tutoriel.

Si vous envisagez d'avoir plusieurs domaines, il est plus facile de configurer des modèles DNS. Voir le chapitre 4.8.1.3 Modèles du manuel ISPConfig. Ici, un seul domaine est ajouté, les modèles ne sont donc pas utilisés.

Allez dans l'onglet DNS et appuyez sur "Ajouter une nouvelle zone DNS manuellement". Cette zone est le fichier de configuration de votre domaine, vous pouvez considérer qu'il s'agit plus ou moins de la même chose que le domaine que vous souhaitez utiliser.

Les captures d'écran montrent comment remplir le formulaire de zone DNS. Si vous configurez cette zone pour un client, saisissez le client dans le formulaire. Vous pouvez la laisser vide si vous définissez cette zone pour vous-même ou si vous ne souhaitez pas créer de clients dans ISPConfig.

Enregistrez et accédez à l'onglet Enregistrements.

Dans l'onglet Enregistrements, ajoutez des enregistrements en appuyant sur le bouton vert de l'enregistrement souhaité. Par exemple, pour obtenir un enregistrement A, appuyez sur le bouton vert avec A. Lors de l'écriture des noms d'hôte FQDN, n'oubliez pas d'ajouter le caractère point "." à la fin du nom. Certains champs des formulaires DNS ISPConfig en ont besoin pour créer une entrée de service de noms fonctionnant correctement. Il est plus facile de toujours l'écrire que de se rappeler où il n'est pas nécessaire.

Vous pouvez ajouter d'autres enregistrements si vous le souhaitez.

La boule rouge avec un nombre en haut de la fenêtre du panneau ISPConfig indique que l'enregistrement sur le disque est en cours. Le nombre indique combien d'enregistrements doivent encore être écrits. Attendez deux minutes ou jusqu'à ce que la boule rouge disparaisse avant de tester, sinon vous risquez de tester les anciennes configurations.

Si vous avez besoin de plus de serveurs de noms, ou si vous n'aviez qu'un seul hôte sur lequel vous avez installé ISPConfig, vous pouvez ajouter des hôtes à la configuration d'ISPConfig. Pour les hôtes qui n'exécutent que le service de noms, même un petit hôte suffit. Si vous pouvez installer Linux et ISPConfig sur l'hôte et qu'il possède une adresse IP statique, vous pouvez l'utiliser comme serveur de noms. Vous pouvez l'exécuter au bureau ou à la maison, mais l'adresse IP statique peut être difficile à obtenir ou coûteuse. Les hébergeurs ont des offres petites et bon marché, et vous pouvez obtenir cette adresse IP statique. Vous pouvez configurer une configuration multiserveur ISPConfig, où un hôte est quelque part et l'autre hôte est ailleurs.

Si vous êtes confus, lisez le manuel ISPConfig.

1.2 Utiliser le service de noms des fournisseurs

Ignorez ceci si vous avez déjà utilisé ISPConfig pour configurer le service de noms.

Si vos hôtes sont sur un fournisseur d'hébergement, ils offrent probablement un service DNS pour leurs clients d'hébergement. Ou vous pouvez trouver un fournisseur de services DNS.

Sur la manière d'utiliser ces services, il est difficile de donner des conseils précis. Probablement chaque fournisseur a un système différent. Cependant, tous ont besoin que vous saisissiez les informations que vous avez rassemblées dans le tableau au début.

Lisez le chapitre précédent et adaptez-vous au formulaire de saisie de votre fournisseur.

Le fournisseur d'hébergement ou le fournisseur DNS exécute très probablement un ensemble de serveurs de noms, et tous les clients DNS les utilisent. Les serveurs de noms sont probablement nommés ns1.yourprovider.com, ns2.yourprovider.com. Le fournisseur peut proposer des enregistrements glue, de sorte que vos serveurs de noms apparaissent nommés ns1.xyzzy.tld, ns2.xyzzy.tld à la place. Examinez les instructions de votre fournisseur pour savoir si des enregistrements glue sont disponibles et comment les utiliser.

1.3 Tests

N'oubliez pas de vérifier que le service de noms fonctionne correctement. Connectez-vous à l'hôte ns1 ou ns2 et commencez les tests. Cet exemple fonctionne sur Debian GNU/Linux 9.5 Stretch, je suppose qu'Ubuntu est à peu près le même. D'autres systèmes d'exploitation peuvent être différents. Si vous testez sur Windows, il n'a pas de commande host, utilisez nslookup à la place.

[email protected]:~# host web.xyzzy.tld 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

web.xyzzy.tld has address 192.168.250.71
[email protected]:~#

Le test ci-dessus montre que le serveur de noms utilisé est 192.168.250.73 et résout le nom web.xyzzy.tld en numéro IP 192.168.250.71, ce que nous voulons dans ce cas. Le tester ainsi est utile car

  • la commande host teste le service de noms, si vous envoyez un ping au nom d'hôte, il se peut qu'il soit d'abord recherché dans le fichier /etc/hosts et ne teste donc pas du tout le service de noms.
  • le numéro IP dans la commande host après FQDN est l'adresse des serveurs de noms où la requête est envoyée. De cette façon, nous sommes sûrs de tester le serveur de noms que nous venons de configurer.
  • Le numéro IP est utilisé pour le serveur de noms au lieu du nom d'hôte, car si le service de noms ne fonctionne pas, le nom peut ne pas correspondre au numéro IP prévu, il est donc préférable d'utiliser l'adresse IP directement.

Vérifiez les autres noms d'hôte que vous avez configurés de la même manière.

  • Si l'adresse IP renvoyée est erronée, corrigez-la
  • Si introuvable, vérifiez l'orthographe
  • Si introuvable, vérifiez le point à la fin du FQDN dans ISPConfig où vous avez écrit les noms
  • Si "la connexion a expiré, aucun serveur n'a pu être atteint" :le serveur de noms n'est pas en cours d'exécution ou la connexion réseau est perdue. Vérifiez le réseau avec le numéro IP de ping, par exemple. Vérifiez que l'hôte est en cours d'exécution. Vérifiez que le service de noms est en cours d'exécution, sur Debian et Ubuntu avec
    systemctl status bind9.service
    .
  • Si tous les éléments ci-dessus ne permettent pas d'obtenir un service de nom de travail, accédez au chapitre Outils.

Vérifiez les informations de la zone, en particulier les serveurs de noms, comme ceci :

[email protected]:~# dig @192.168.250.73 xyzzy.tld

; <<>> DiG 9.10.3-P4-Debian <<>> @192.168.250.73 xyzzy.tld
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64352
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xyzzy.tld.			IN	A

;; ANSWER SECTION:
xyzzy.tld.		3600	IN	A	192.168.250.71

;; AUTHORITY SECTION:
xyzzy.tld.		3600	IN	NS	ns1.xyzzy.tld.
xyzzy.tld.		3600	IN	NS	ns2.xyzzy.tld.

;; ADDITIONAL SECTION:
ns1.xyzzy.tld.		3600	IN	A	192.168.250.73
ns2.xyzzy.tld.		3600	IN	A	192.168.250.75

;; Query time: 0 msec
;; SERVER: 192.168.250.73#53(192.168.250.73)
;; WHEN: Fri Aug 10 15:41:53 EEST 2018
;; MSG SIZE  rcvd: 122

[email protected]:~#

Dig obtient le serveur de noms auquel il envoie la requête à partir du paramètre @. Mettez-y le numéro IP du serveur de noms.

Si dig affiche correctement les enregistrements NS et les bons numéros IP pour les serveurs de noms dans les enregistrements A, alors tout va bien.

Effectuez maintenant le test ci-dessus en utilisant l'autre serveur de noms, vous n'avez pas besoin de vous connecter à ns2, il vous suffit d'exécuter à nouveau les commandes mais d'utiliser le numéro IP des autres serveurs. Cela permet de s'assurer que l'autre serveur de noms fonctionne également comme il se doit.

Vous pouvez tester davantage en configurant votre poste de travail pour utiliser ces nouveaux serveurs de noms que vous avez configurés. Vous devez changer de serveur DNS sur votre poste de travail, recherchez comment le faire pour votre système d'exploitation dans le manuel ou sur Internet. Sous Linux, vous pouvez modifier le fichier /etc/resolv.conf. Sous Windows, il se trouve dans les paramètres réseau (au même endroit où vous avez configuré l'obtention automatique de l'adresse IP).

1.4 Service de nom inversé

Ignorez ceci si vous n'avez pas besoin du service de nom inversé (les enregistrements PTR).

Le service de nom inversé résout le nom lorsque l'adresse IP est donnée. C'est l'opération inverse du service de nom usuel.

Si vous configurez un service de noms interne à votre organisation, vous pouvez configurer un service de noms inversé dans les mêmes serveurs de noms. Lorsque vous utilisez ISPConfig, créez d'abord la zone inverse, puis créez des enregistrements PTR dans cette zone pour chaque numéro IP dont vous disposez.

Si le service de noms inversés doit fonctionner à partir d'Internet public, vous ne pouvez pas utiliser votre propre serveur de noms car il ne s'agit probablement pas d'un serveur de noms faisant autorité pour la zone inversée IP. Si c'est le cas, vous devriez le savoir. Contactez votre fournisseur de services ou la société qui vous a donné vos numéros IP, demandez-leur de mettre en place un service de nom inversé. Indiquez-leur les enregistrements PTR dont vous avez besoin ou découvrez comment utiliser l'interface utilisateur Web que la société d'hébergement fournit probablement pour utiliser le service de noms inversés.

Pour configurer le service de nom inverse avec ISPConfig, créez la zone DNS pour le service inverse, elle doit être nommée avec les trois premiers octets du numéro IP dans l'ordre inverse avec ".in-addr.arpa" ajouté à la fin. Dans ce cas, les numéros IP proviennent du sous-réseau 192.168.250/24, la zone inverse est donc nommée 250.168.192.in-addr.arpa. N'oubliez pas d'ajouter également les enregistrements NS à la zone inverse.

Dans cette zone inverse, créez des enregistrements PTR comme ceci :

Le test est facile avec la commande host, comme ceci :

[email protected]:~# host 192.168.250.71 192.168.250.73
Using domain server:
Name: 192.168.250.73
Address: 192.168.250.73#53
Aliases: 

71.250.168.192.in-addr.arpa domain name pointer web.xyzzy.tld.

Il est possible de configurer plusieurs enregistrements PTR pour le même numéro IP. Ensuite, la requête inverse les renvoie tous. Vous ne le souhaitez peut-être pas, alors ne le faites pas à moins de savoir ce que vous faites.

Si vous configurez un serveur de messagerie, par exemple, mail.xyzzy.tld, vous devez définir l'enregistrement PTR car la plupart des serveurs de messagerie vérifient que le numéro IP d'envoi correspond au nom d'hôte utilisé par le serveur de messagerie.

1.5 Outils

Si vous pensez que le service de noms n'a pas démarré, vérifiez avec

systemctl status bind9.service

S'il affiche "Actif :actif (en cours d'exécution)…", le service de noms fonctionne. Ne vous souciez pas d'une éventuelle "résolution de réseau inaccessible … AAAA " -lines, si vous les obtenez, cela signifie que vous n'avez pas de réseau IPv6 disponible.

Si le service de noms est en cours d'exécution mais que le test avec la commande host ne renvoie pas de réponses, il se peut que le fichier de zone soit défectueux. Utilisez named-checkzone si bind n'accepte pas la zone. Le fichier de zone défectueux se trouve (sur Debian GNU/Linux) dans le fichier /etc/bind/pri.err, c'est-à-dire .err ajouté à la fin du nom de fichier. Vérifiez comme ceci :

[email protected]:~# named-checkzone  250.168.192.in-addr.arpa /etc/bind/pri.250.168.192.in-addr.arpa.err
zone 250.168.192.in-addr.arpa/IN: has no NS records
zone 250.168.192.in-addr.arpa/IN: not loaded due to errors.
[email protected]:~#

Réparez les erreurs dans ISPConfig si vous l'avez configuré à l'aide du panneau ISPConfig.

Il peut y avoir des erreurs dans le fichier journal, arrêtez et démarrez le service de noms et voyez ce qu'il y a dans le fichier /var/log/syslog. Par exemple avec

grep named /var/log/syslog

Il existe des sites Web qui vérifient la configuration de votre service de noms, vous pouvez utiliser les moteurs de recherche Internet pour les trouver. Je connais zonecheck.org, mxtoolbox.com, zonemaster.net.

1.6 Obtenir de l'aide

Si vous demandez de l'aide sur le forum, masquer le nom de domaine rend l'aide difficile. Si vous révélez quel est le domaine, il est facile de vérifier la configuration et de donner des conseils si quelque chose ne va pas. Si vous ne pouvez pas révéler publiquement le nom de domaine et que l'utilisation de ce didacticiel et de la documentation d'Interwebs ne vous aide pas, trouvez quelqu'un en qui vous pouvez avoir confiance avec votre nom de domaine et qui connaît le service de noms, puis demandez à cette personne de vous aider avec votre domaine.

1.7 Enregistrer un domaine

Lorsque votre service de noms fonctionne correctement pour votre zone, vous pouvez l'enregistrer, ou s'il était déjà enregistré auparavant, vous pouvez maintenant ajouter des serveurs de noms à l'enregistrement et le domaine est disponible sur Internet, après 4 à 48 heures alors que les informations du service de noms voyage à travers le monde.

Si vous enregistrez xyzzy.tld et qu'il a un serveur de noms ns1.xyzzy.tld, vous donnez des numéros IP pour les serveurs de noms au lieu des noms d'hôtes. Si vous ne donnez que le nom d'hôte ns1.xyzzy.tld, comment trouver le serveur de noms ? Le seul endroit où le numéro IP est disponible est sur ns1.xyzzy.tld mais comment y accéder sans connaître le numéro IP ? Une autre façon de résoudre ce dilemme est d'utiliser des enregistrements glue (voir précédemment), vous pouvez alors utiliser des noms au lieu de numéros IP pour vos serveurs de noms.

Lorsque vous enregistrez un autre domaine plugh.tld, vous pouvez donner aux serveurs de noms les noms d'hôte ns1.xyzzy.tld et ns2.xyzzy.tld car le domaine xyzzy.tld est déjà bien enregistré et les serveurs de noms sont connus.


Linux
  1. Configuration des redirections de port sous Linux avec ncat

  2. Procédure :Attaque par amplification du serveur de noms de domaine (DNS)

  3. Configurer Active Directory avec DNS intégré

  4. Transférez votre hébergement DNS vers Rackspace

  5. Comment écrire votre propre module de noyau Linux avec un exemple simple

Configurez votre propre résolveur DNS sur Debian 10 Buster avec BIND9

Comment exécuter votre propre serveur de noms avec ISPConfig et providerdomain.de (Schlund)

Comment exécuter vos propres serveurs DNS (primaires et secondaires) avec ISPConfig 3 (Debian Squeeze)

DIY NAS Freenas Server - Construisez votre propre NAS avec Freenas

Qu'est-ce que DNS et comment fonctionne DNS ? (Principes fondamentaux du serveur de noms de domaine)

Comment mapper une adresse IP statique sur votre domaine (avec l'exemple de GoDaddy)