Recherche de site Web

Configuration de Bind en tant que serveur DNS privé sur RHEL 8


Le système de noms de domaine (DNS) est une méthode utilisée pour traduire les noms de domaine lisibles par l’homme (ou noms de domaine pleinement qualifiés (FQDN)) en adresses IP lisibles par machine, afin de localiser un ordinateur dans un réseau tel qu’Internet.

Dans les systèmes informatiques et réseau, cela est nécessaire car, bien que les FQDN soient faciles à mémoriser et à utiliser pour les humains, les ordinateurs (clients) accèdent à des ressources ou à des services sur d’autres ordinateurs (serveurs) en fonction d’adresses IP.

À cet égard, un serveur DNS (également connu sous le nom de serveur de noms) gère un répertoire de FQDN et les traduit en adresses IP ; il peut également renvoyer une adresse IP lorsqu’un nom d’hôte/FQDN est fourni. Il existe différents types de serveurs DNS, notamment le serveur de noms faisant autorité, le serveur de noms de mise en cache et bien d’autres.

Dans cet article, nous allons vous guider à travers les étapes d’installation et de configuration d’un serveur DNS privé/interne faisant autorité sur RHEL 8 à l’aide du logiciel open source BIND.

Exigences:

  1. RHEL 8 avec installation minimale
  2. RHEL 8 avec abonnement RedHat activé
  3. RHEL 8 avec adresse IP statique

Mon environnement de test :

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

Étape 1 : Installation de Bind DNS sur RHEL 8

1. Pour installer bind et ses utilitaires sur votre serveur, exécutez la commande cdnf suivante.

# dnf install bind bind-utils

2. Ensuite, démarrez le service DNS pour l’instant, puis activez-le pour qu’il démarre automatiquement au démarrage du système et vérifiez s’il est opérationnel à l’aide des commandes systemctl.

# systemctl start named
systemctl enable named
systemctl status named

Étape 2 : Configuration de BIND DNS sur RHEL 8

3. Pour configurer le serveur DNS Bind, vous devez d’abord effectuer une sauvegarde du fichier de configuration d’origine /etc/named.conf à l’aide de la commande cp suivante.

# cp /etc/named.conf /etc/named.conf.orig

4. Ouvrez maintenant le fichier de configuration /etc/named.conf pour l’édition à l’aide de votre éditeur de texte de ligne de commande préféré comme suit.

# vi /etc/named.conf 

Dans la section de configuration des options, commentez les lignes suivantes.

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. Ensuite, recherchez le paramètre allow-query et définissez sa valeur sur votre réseau, ce qui signifie que seuls les hôtes de votre réseau local peuvent interroger le serveur DNS.

allow-query  {localhost; 192.168.56.0/24}

Étape 3 : Création des zones DNS directe et inverse

Une zone aller est l’endroit où sont stockées les relations entre le nom d’hôte (ou le nom de domaine complet) et l’adresse IP ; il renvoie une adresse IP à l’aide du nom d’hôte. Notez que les requêtes DNS normales sont des requêtes de recherche directe. D’autre part, une zone inverse renvoie le nom de domaine complet d’un hôte en fonction de son adresse IP.

6. Pour définir les zones avant et arrière, ajoutez les lignes suivantes à la fin du fichier /etc/named.conf.

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

Expliquons brièvement les options dans les configurations de zone ci-dessus :

  • type : Définit le rôle de ce serveur pour la zone. La valeur « master » signifie qu’il s’agit d’un serveur faisant autorité où la copie principale des données de zone est conservée.
  • file : spécifie le fichier de base de données de la zone.
  • allow-update : spécifie les hôtes qui ont autorisé à soumettre des mises à jour DNS dynamiques pour les zones maîtres. Aucun dans ce cas.

Étape 4 : Création du fichier de zone DNS de transfert

7. Tout d’abord, créez un fichier de zone avant dans le répertoire /var/named.

# vi /var/named/tecmint.lan.db

Ajoutez-y la configuration suivante.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

Expliquons brièvement la définition de la zone ci-dessus et les paramètres.

  • TTL : spécifie la durée de vie du RR et $TTL directive donne un TTL par défaut pour chaque RR sans jeu TTL spécifique.
  • @ : Il s’agit d’un alias pour le nom de domaine (par exemple tecmint.lan) défini dans le fichier de configuration principal.
  • IN : désigne Internet.
  • SOA : spécifie le début de l’autorité : qui est le serveur de noms faisant autorité (dns-primary.tecmint.lan), les coordonnées de l’administrateur (admin.tecmint.lan, le signe @ est remplacé par un point) et d’autres informations connexes.
  • NS : signifie serveur de noms.
  • Serial : cette valeur est utilisée par le serveur DNS pour vérifier que le contenu d’un fichier de zone particulier est à jour.
  • Actualiser : spécifie la fréquence à laquelle un serveur DNS esclave doit effectuer un transfert de zone à partir du maître.
  • Réessayer : spécifie la fréquence à laquelle un esclave doit réessayer un transfert de zone ayant échoué.
  • Expire : détermine combien de temps un serveur esclave doit attendre avant de répondre à la requête du client lorsqu’un maître est injoignable.
  • Minimum : définit la durée de vie minimale de la zone.
  • R : Une adresse d’hôte.

Étape 5 : Création d’un fichier de zone DNS inverse

8. De même, créez un fichier de zone inverse dans le répertoire /var/named.

# vi /var/named/tecmint.lan.rev

Ajoutez-y ensuite les lignes suivantes. Ici, le PTR est l’opposé d’un enregistrement utilisé pour mapper une adresse IP à un nom d’hôte.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. Définissez les autorisations de propriété correctes sur les fichiers de zone comme suit.

# chown :named /var/named/tecmint.lan.db
chown :named /var/named/tecmint.lan.rev

10. Enfin, vérifiez la configuration DNS et les fichiers de zone ont la syntaxe correcte après avoir effectué les modifications ci-dessus, à l’aide de l’utilitaire named-checkconf (no out signifie pas d’erreur) :

# named-checkconf
named-checkzone tecmint.lan /var/named/tecmint.lan.db
named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

11. Une fois que vous avez effectué toute la configuration nécessaire, vous devez redémarrer le service DNS pour que les modifications récentes prennent effet.

# systemctl restart named

12. Ensuite, avant que les clients puissent accéder aux configurations du service DNS sur le serveur, vous devez ajouter le service DNS dans la configuration du pare-feu système et recharger les paramètres du pare-feu à l’aide de l’utilitaire firewall-cmd, comme suit :

# firewall-cmd --permanent --zone=public --add-service=dns 
firewall-cmd --reload

Étape 6 : Test du service DNS à partir d’un client

13. Dans cette section, nous allons montrer comment tester le service DNS côté client. Connectez-vous à la machine cliente, configurez-la pour utiliser le serveur DNS ci-dessus. Sur un système Linux, ouvrez le fichier /etc/resolve.conf à l’aide de votre éditeur de texte préféré.

# vi /etc/resolve.conf 

Ajoutez-y l’entrée suivante, qui indique au résolveur d’utiliser le serveur de noms spécifié.

nameserver  192.168.56.100

Enregistrez le fichier et fermez-le. Notez que vous devez également spécifier le serveur DNS dans le fichier de configuration de l’interface réseau.

14. Ajoutez l’adresse IP 192.168.56.100 des serveurs DNS en tant que résolveur au fichier de configuration de l’interface réseau de la machine cliente /etc/sysconfig/network-scripts/ifcfg-enp0s3 comme illustré dans la figure suivante.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. Utilisez ensuite l’utilitaire nslookup pour interroger l’adresse IP à l’aide du nom d’hôte et vice versa, des serveurs www, mail et docs de votre réseau, comme indiqué.

# nslookup 192.168.56.5
nslookup www.tecmint.lan
nslookup 192.168.56.10
nslookup mail.tecmint.lan
nslookup 192.168.56.20
nslookup docs.tecmint.lan
nslookup 192.168.56.100
nslookup dns-primary.tecmint.lan

Résumé

Dans cet article, nous avons montré comment installer et configurer un serveur DNS privé faisant autorité sur RHEL 8 à l’aide du logiciel BIND. Nous espérons que tout s’est bien passé pour vous, sinon, envoyez-nous vos questions ou tout autre commentaire via le formulaire de commentaires ci-dessous.

Articles connexes: