BIND, également connu sous le nom de "Berkeley Internet Name Domain", est l'un des systèmes de noms de domaine (DNS) les plus populaires aujourd'hui. Il est open-source et fournit des services DNS sur les systèmes d'exploitation Linux. Généralement, il vous aide à résoudre un nom de domaine complet en une adresse IP ou une adresse IP en un nom de domaine. Il peut être utilisé comme serveur de noms faisant autorité et fournit plusieurs fonctionnalités telles que l'équilibrage de charge, la mise à jour dynamique, le DNS fractionné, etc.
Dans ce tutoriel, nous allons vous montrer comment configurer un serveur DNS privé avec BIND sur CentOS 8. Sur une note connexe, jetez un œil à notre tutoriel sur l'installation et la configuration d'un serveur DNS simple (BIND) sur Debian 9.
Prérequis
- Un VPS CentOS 8 (nous utiliserons notre plan SSD 2 VPS)
- Accès au compte utilisateur root (ou accès à un compte administrateur avec privilèges root)
Pour les besoins de ce didacticiel, nous utiliserons la configuration suivante :
Nom d'hôte : ns1.rosehosting.local
Adresse IP : 192.168.1.100
Réseau local : 192.168.1.0/24
Étape 1 :Connectez-vous au serveur et mettez à jour les packages du système d'exploitation du serveur
Tout d'abord, connectez-vous à votre serveur CentOS 8 via SSH en tant qu'utilisateur root :
ssh root@IP_Address -p Port_number
Vous devrez remplacer 'IP_Address' et 'Port_number' par l'adresse IP et le numéro de port SSH respectifs de votre serveur. De plus, remplacez "root" par le nom d'utilisateur du compte administrateur si nécessaire.
Avant de commencer, vous devez vous assurer que tous les packages CentOS installés sur le serveur sont à jour. Vous pouvez le faire en exécutant les commandes suivantes :
dnf update -y
Étape 2 :Installer le serveur DNS BIND
Par défaut, le package de liaison est disponible dans le référentiel standard CentOS 8. Vous pouvez l'installer en exécutant la commande suivante :
dnf install bind bind-utils -y
Une fois le BIND installé, démarrez le service BIND et activez-le pour qu'il démarre au redémarrage du système :
systemctl start named systemctl enable named
Étape 3 :Configurer le serveur DNS BIND
Par défaut, le serveur BIND écoute uniquement sur localhost. Vous devrez donc le configurer pour écouter sur toutes les interfaces réseau. Vous pouvez le configurer en éditant le fichier /etc/named.conf :
nano /etc/named.conf
Commentez les lignes suivantes :
//listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; };
Modifiez la ligne suivante pour autoriser la requête pour votre réseau local :
allow-query { localhost;192.168.1.0/24; };
Enregistrez et fermez le fichier lorsque vous avez terminé.
Étape 4 :Créer une zone DNS directe et inverse
Une zone directe est utilisée pour résoudre le nom d'hôte en adresse IP tandis qu'une zone inverse est utilisée pour résoudre l'adresse IP en nom d'hôte. Généralement, toutes les requêtes DNS normales sont des requêtes de recherche directe. Vous pouvez définir les zones de recherche directe et inversée dans le fichier /etc/named.conf.
Modifiez le fichier /etc/named.conf avec la commande suivante :
nano /etc/named.conf
Ajoutez les lignes suivantes à la fin du fichier
//Forward Zone zone "rosehosting.local" IN { type master; file "rosehosting.local.db"; allow-update { none; }; }; //Reverse Zone zone "1.168.192.in-addr.arpa" IN { type master; file "192.168.1.db"; allow-update { none; }; };
Enregistrez et fermez le fichier lorsque vous avez terminé.
Étape 5 :Créer des fichiers de zone avant et arrière
Ensuite, vous devrez créer des fichiers de zone avant et arrière définis à l'étape précédente. Par défaut, tous les fichiers de recherche de zone se trouvent dans le répertoire /var/named.
Commencez par créer un fichier de zone de transfert avec la commande suivante :
nano /var/named/rosehosting.local.db
Ajoutez les lignes suivantes :
$TTL 86400 @ IN SOA ns1.rosehosting.local. root.rosehosting.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.rosehosting.local. ;IP address of Name Server ns1 IN A 192.168.1.100 ;A - Record HostName To Ip Address www IN A 192.168.1.101 ;CNAME record ftp IN CNAME www.rosehosting.local.
Enregistrez et fermez le fichier puis créez un fichier de zone inversée avec la commande suivante :
nano /var/named/192.168.1.db
Ajoutez les lignes suivantes :
$TTL 86400 @ IN SOA ns1.rosehosting.local. root.rosehosting.local. ( 3 ;Serial 3600 ;Refresh 1800 ;Retry 604800 ;Expire 86400 ;Minimum TTL ) ;Name Server Information @ IN NS ns1.rosehosting.local. ;Reverse lookup for Name Server 100 IN PTR ns1.rosehosting.local. ;PTR Record IP address to HostName 101 IN PTR www.rosehosting.local.
Enregistrez et fermez le fichier lorsque vous avez terminé.
Étape 6 :Vérifier la configuration DNS
Après avoir configuré tous les fichiers de zone, vous devrez vérifier les fichiers de configuration.
Tout d'abord, validez le fichier de configuration principal avec la commande suivante :
named-checkconf /etc/named.conf
Si tout va bien, vous ne verrez aucune erreur.
Ensuite, vérifiez le fichier de zone de transfert avec la commande suivante :
named-checkzone rosehosting.local /var/named/rosehosting.local.db
Vous devriez obtenir le résultat suivant :
zone rosehosting.local/IN: loaded serial 3 OK
Ensuite, vérifiez le fichier de zone inversée avec la commande suivante :
named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.db
Vous devriez obtenir le résultat suivant :
zone 1.168.192.in-addr.arpa/IN: loaded serial 3 OK
Enfin, redémarrez le service BIND pour appliquer les modifications :
systemctl restart named
Étape 7 :Configurer le pare-feu
Ensuite, vous devrez créer une règle de pare-feu pour le port 53 afin d'autoriser les requêtes DNS des machines clientes. Vous pouvez le créer avec la commande suivante :
firewall-cmd --permanent --add-port=53/udp
Ensuite, rechargez le service de pare-feu pour appliquer les modifications :
firewall-cmd --reload
Étape 8 :Vérifier le serveur DNS
À ce stade, le serveur DNS BIND est installé et configuré. Il est temps de vérifier si cela fonctionne ou non.
Tout d'abord, éditez votre fichier /etc/resolv.conf et ajoutez l'IP de votre serveur DNS :
nano /etc/resolv.conf
Ajoutez la ligne suivante au début du fichier :
nameserver 192.168.1.100
Enregistrez et fermez le fichier, puis vérifiez la recherche directe à l'aide de la commande dig :
dig www.rosehosting.local
Ou
dig ns1.rosehosting.local
Si tout va bien, vous devriez obtenir la réponse suivante :
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> www.rosehosting.local ;; global options: +cmd ;; Got answer: ;; WARNING: .local is reserved for Multicast DNS ;; You are currently testing what happens when an mDNS query is leaked to DNS ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52518 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: cd9d365f1f02621aa9c8753c5fd47154db8cae737b9ca09f (good) ;; QUESTION SECTION: ;www.rosehosting.local. IN A ;; ANSWER SECTION: www.rosehosting.local. 86400 IN A 192.168.1.101 ;; AUTHORITY SECTION: rosehosting.local. 86400 IN NS ns1.rosehosting.local. ;; ADDITIONAL SECTION: ns1.rosehosting.local. 86400 IN A 192.168.1.100 ;; Query time: 0 msec ;; SERVER: 192.168.1.100#53(192.168.1.100) ;; WHEN: Sat Dec 12 02:29:24 EST 2020 ;; MSG SIZE rcvd: 128
Ensuite, vérifiez la recherche inversée avec la commande suivante :
dig -x 192.168.1.100
Vous devriez obtenir la réponse suivante :
; <<>> DiG 9.11.20-RedHat-9.11.20-5.el8 <<>> -x 192.168.1.100 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30878 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ; COOKIE: 18a66bab478cf57219e6c17c5fd471671887a1dd983fef57 (good) ;; QUESTION SECTION: ;100.1.168.192.in-addr.arpa. IN PTR ;; ANSWER SECTION: 100.1.168.192.in-addr.arpa. 86400 IN PTR ns1.rosehosting.local. ;; AUTHORITY SECTION: 1.168.192.in-addr.arpa. 86400 IN NS ns1.rosehosting.local. ;; ADDITIONAL SECTION: ns1.rosehosting.local. 86400 IN A 192.168.1.100 ;; Query time: 0 msec ;; SERVER: 192.168.1.100#53(192.168.1.100) ;; WHEN: Sat Dec 12 02:29:43 EST 2020 ;; MSG SIZE rcvd: 148
Toutes nos félicitations! vous avez configuré avec succès un serveur DNS privé avec BIND sur CentOS 8.
Bien sûr, vous n'avez rien à faire si vous utilisez l'un de nos services d'hébergement VPS Linux, auquel cas vous pouvez simplement demander à nos administrateurs Linux experts de le configurer pour vous. Ils sont disponibles 24h/24 et 7j/7 et prendront immédiatement en charge votre demande.
PS . Si vous avez aimé cet article, partagez-le avec vos amis sur les réseaux sociaux en utilisant les boutons à gauche ou laissez simplement une réponse ci-dessous. Merci.