linux_bind

Ceci est une ancienne révision du document !


~~CLOSETOC~~

Bind - Installation d'un serveur DNS

Le service DNS (Domain Name System) correspond à l'annuaire de votre réseau. Il transforme les adresses telles que server.shyrka.sys en adresses IP permettant la communication entre les machines via leur FQDN (Fully-Qualified Domain Name) ou leur nom d'hôte (pour linux) et NetBIOS (pour Windows). Sous debian, le service DNS est fourni par BIND (Berkeley Internet Name Daemon).

<note>Cette procédure a été réalisée et testée sur une VM Debian 10.</note>

<note warning>Cette procédure nécessite des droits root. Faîtes donc attention à ce que vous faîtes.</note>

  • On commence par mettre à jour les dépôts APT :

apt-get update

  • On installe le paquet nécessaire :

apt-get install -y bind9

Pour une bonne configuration du serveur BIND, il faut configurer plusieurs fichiers, correspondant à des propriétés bien précises :

  • le fichier correspondant à la fôret. Ce fichier contient les définitions de chaque zone (domaine) gérée.
  • un fichier correspondant à chaque domaine de la forêt. Ce fichier contient les entrées DNS pour le domaine en question.

Ce fichier de configuration est /etc/bind/named.conf. On le configure en y ajoutant les informations suivantes :

  • le nom de la zone ou du domaine (shyrkasys.local dans cet exemple)
  • le type de serveur :
    • master quand le serveur fait autorité pour la zone (serveur primaire ou maître).
    • slave quand le serveur est une copie du serveur principal.
    • hint pour les serveurs racines DNS.
  • le chemin vers le fichier contenant les entrées DNS (/etc/bind/zones/shyrkasys.local dans cet exemple)
  • les éventuelles options de zone (se référer à la documentation de bind et de named.conf). Pour l'exemple, on ajoutera forwarders{}. Cette option permet en temps normal de renvoyer les requêtes vers les serveurs secondaires pour la zone (serveurs définis par leurs adresses IP). Cependant en n'indiquant aucune adresse, on empêche tout simplement les requêtes d'aller interroger les serveurs DNS d'internet quand le serveur BIND n'arrive pas à les résoudre.

La section à ajouter ressemble donc à cela :

zone "shyrkasys.local" { 
    type master; 
    file "/etc/bind/zones/shyrkasys.local"; 
    forwarders{}; 
}; 

Ce fichier doit être celui que vous avez indiqué dans le fichier /etc/bind/named.conf. L'entête de ce fichier contient différentes informations concernant la zone :

  • l'enregistrement TTL (Time To Live). Elle indique à tout système effectuant une requête auprès de ce serveur, combien de temps cette information est valide et donc quand est ce qu'il doit réinterroger le serveur. Dans cet exemple j'ai choisi 1h soit 3600s.
  • l'enregistrement SOA (Start Of Authority). Entrée indispensable qui indique notamment :
    • le nom du serveur primaire pour la zone (dns.shyrkasys.local dans cet exemple).
    • le numéro de série du fichier. Utilisé lors de la réplication de zone. La convention veut que son format soit l'année sur 4 chiffres, le mois sur 2 chiffres, le jour sur 2 chiffres et le nombre de modification du jour sur 2 chiffres, soit un numéro de série de ce style 2020022004 pour la quatrième modification du 20 février 2020.
    • le taux de rafraichissement des serveurs secondaires (durée maximale entre deux mise à jour, 7200 dans cet exemple).
    • le temps avant un nouvel essaie (durée minimal à attendre attendre avant requête si la mise à jour n'a pas fonctionné).
    • le temps d'expiration (durée maximal après laquelle les serveurs secondaires ne font plus de requête auprès d'un serveur principal qui ne répond plus).
    • le TTL pour le cache négatif (correspond à la durée de vie des réponses négatives comme les échecs).
  • le ou les enregistrements NS (Name Server) correspondants aux noms des serveurs DNS pour cette zone.
  • le ou les enregistrements A (Address) correspondants aux adresses IPv4 des serveurs enregistrés dans les entrées NS.
  • (si l'IPv6 est activée) le ou les enregistrement AAAA correspondants aux adresses IPv6 des serveurs enregistrés dans les entrées NS.

L'entête ressemble donc à cela :

$TTL 3600
@    IN     SOA     dns.shyrkasys.local. root.shyrkasys.local. (
          2020022004 ; serial
          7200       ; refresh
          900        ; retry
          604800     ; expire
          600 )      ; ttl

@    IN     NS     dns
@    IN     A      192.168.0.250

Une fois l'entête créée, on peut ajouter à la suite les différentes entrées telles que :

  • A et AAAA
  • CNAME (Canonical NAME)
  • SRV (SeRVice)
  • MX (Mail eXchanger)
  • TXT (TeXT)
  • SPF (Sender Policy Framework)

Exemple :

# Adresses
router          IN     A          192.168.0.1
printer         IN     A          192.168.0.2

mail            IN     A          192.168.0.251
ldap            IN     A          192.168.0.252

# Alias
webmail         IN     CNAME      mail

<note important>Lorsque l'on change le fichier de zone, il ne faut pas oublier de mettre à jour le numéro de série afin que les serveurs secondaires puissent se mettre à jour.</note>

Nicolas THOREZ 2020/02/20 12:04

Entrer votre commentaire. La syntaxe wiki est autorisée:
 
  • linux_bind.1582211156.txt.gz
  • Dernière modification : 2020/02/20 14:05
  • (modification externe)