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 des noms de domaine lisibles par l'homme (ou Noms de domaine entièrement qualifiés (FQDN )) à des adresses IP lisibles par machine, pour localiser un ordinateur dans un réseau tel que 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 des adresses IP.

À cet égard, un serveur DNS (également appelé 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 en cache et bien d'autres.

Dans cet article, nous vous guiderons à 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 le moment, puis activez-le pour démarrer 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 Bind DNS, vous devez d'abord effectuer une sauvegarde du fichier de configuration d'origine /etc/named.conf en utilisant le cp suivant commande.

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

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

vi /etc/named.conf 

Sous la section de configuration 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 interrogez le serveur DNS.

allow-query  {localhost; 192.168.56.0/24}

Étape 3 : Création des zones DNS avant et arrière

Une Zone de transfert est l'endroit où les relations entre le nom d'hôte (ou le FQDN) et l'adresse IP sont stockées ; il renvoie une adresse IP en utilisant le nom d'hôte. Notez que les requêtes DNS normales sont des requêtes de recherche directe. D'un autre côté, une Zone inversée renvoie le FQDN d'un hôte en fonction de son adresse IP.

6. Pour définir les zones forward et reverse, ajoutez les lignes suivantes à la fin du /etc/named.conf< fichier.

//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 zones 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é sur lequel la copie principale des données de zone est conservée.
  • fichier : spécifie le fichier de base de données de la zone.
  • allow-update : spécifie les hôtes autorisés à soumettre des mises à jour DNS dynamiques pour les zones maîtres. Aucun dans ce cas.

Étape 4 : Création d'un fichier de zone DNS de transfert

7. Tout d'abord, créez un fichier Forward zone 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 zone ci-dessus et les paramètres.

  • TTL : spécifie la durée de vie de la directive RR et $TTL donne un TTL par défaut pour chaque RR sans ensemble de durée de vie 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 informations de contact de l'administrateur ( admin.tecmint.lan, le signe @ est remplacé par un point) et d'autres informations associées.
  • NS : signifie serveur de noms.
  • Série : 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 depuis le 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 inaccessible.
  • Minimum : définit la durée de vie minimale pour la zone.
  • A : une adresse d'hôte.

Étape 5 : Création d'un fichier de zone DNS inversé

8. De la même manière, créez un fichier Reverse zone 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 A 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 que la configuration DNS et que les fichiers de zone ont la syntaxe correcte après avoir effectué les modifications ci-dessus, à l'aide de l'utilitaire named-checkconf (pas de sortie 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 qu'un client puisse 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 pare-feu-cmd, comme suit. :

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

Étape 6 : tester le service DNS à partir d'un client

13. Dans cette section, nous montrerons comment tester le service DNS côté client. Connectez-vous à la machine client, 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 des serveurs DNS 192.168.56.100 comme résolveur au fichier de configuration de l'interface réseau de la machine client /etc/sysconfig/network-scripts/ifcfg-enp0s3< comme le montre 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 en utilisant le nom d'hôte et vice versa, du www, du mail et des docs<. serveurs 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 a bien fonctionné pour vous, sinon envoyez-nous vos questions ou tout autre commentaire via le formulaire de commentaires ci-dessous.