Créer un serveur DNS avec CentOS 8 et lier

introduction

Il s'agit de yuji323, qui est le premier article posté depuis longtemps. Cette fois, c'est un peu différent de la programmation Java, et c'est un article plus proche de NW. Comme le titre l'indique, j'ai essayé de créer un serveur DNS dans un environnement virtuel avec CentOS et BIND. J'espère que cela aidera ceux qui en ont besoin ~

Si vous avez des erreurs, faites-le moi savoir dans les commentaires.

environnement

Hyperviseur: VMWare WorkStation Player pour Windows 15.0 OS hôte: Windows10 version 1909 Guest OS1 (serveur DNS / DHCP01): CentOS Linux version 8.2.2004 (Core) Guest OS2 (pour vérification / TEST01): CentOS Linux version 8.2.2004 (Core) Guest OS3 (pour vérification / TEST02): CentOS Linux version 8.2.2004 (Core)

Enfin, créons un environnement virtuel comme indiqué dans le diagramme de réseau ci-dessous. Il y a des choses qui n'ont rien à voir avec ce contenu, mais c'est dans le sens de l'ignorer ...

空白の図 (3).png

Contexte

Pendant que j'attendais dans l'entreprise, on m'a demandé de créer du matériel d'étude, en disant: «Je veux étudier des questions liées au réseau pour l'éducation des nouveaux employés à l'avenir.


J'étais développeur et cette entreprise l'était autrefois!

J'ai quitté mon entreprise précédente parce que je voulais la développer au lieu de NW! !! </ b>


Mis à part l'amertume des embauches en milieu de carrière

Il semble qu'il achète l'expérience en tant que NW Engineering de son emploi précédent ... Construction de serveur, pas de contenu de développement ... et DNS ...

À cette époque, je voulais étudier le développement avec beaucoup d'efforts, mais j'ai essayé d'étudier avec un sentiment léger, "Eh bien, si vous voulez être un ingénieur full-stack, il n'y a pas de perte enfin."

Construire

Comme prémisse

Les adresses IP et les noms d'hôte sont définis pour chacune des trois unités, et ils sont joints au domaine "testdomain.local" sur le réseau NAT virtuel. Les informations sur chaque OS invité ressemblent à ceci ↓. Il semble qu'il sera nécessaire plus tard lors de l'écriture des informations de zone DNS, alors définissez-le à l'avance.

OS invité nom d'hôte adresse IP DNS
TEST01 test01.testdomain.local 192.168.146.10 192.168.146.140
DNS01 dns01.testdomain.local 192.168.146.140 192.168.146.2

Installation de BIND

Si vous installez BIND (Berkeley InternetName Domain) (cool) (c'est bien d'écrire l'abréviation en anglais), le serveur installé semble fonctionner comme un serveur DNS. Une image dans laquelle bind prend en charge divers processus lors de l'acquisition d'une combinaison d'IP et de nom d'hôte dans le serveur DNS.

dns01.


[root@dns01 ~]# yum install bind
[root@dns01 ~]# yum install bind-utils

Puisque "bind" est le corps principal de bind et que "bind-utils" contient des commandes dig, vous ne pouvez installer bind que si vous n'utilisez pas la commande dig au moment de la vérification.

Modifier la configuration

Modifiez le fichier de configuration de la liaison installée. J'ai écrit un commentaire pour la publication de quiita, donc même si je le copie, cela peut ne pas fonctionner. .. .. Il est préférable de supprimer le commentaire lors de son utilisation ◎

  • Il est recommandé de copier le fichier original afin qu'il puisse être restauré à tout moment.

dns01.


[root@dns01 ~]# cp /etc/named.conf /etc/named.conf.ORG
[root@dns01 ~]# vi /etc named.conf

/etc/named.conf


options {
        listen-on port 53 { 127.0.0.1; 192.168.146.140;}; //Écouter le port
        //listen-on-v6 port 53 { ::1; };          //ipv6 semble être en retard pour les demandes de renseignements, alors commentez
        directory       "/var/named";           
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";

        recursion       yes;         //Autorisation de requête récursive
        allow-query     {any; };   //Adresses autorisant la résolution de noms → Tout autoriser

        forwarders {         //Si l'enquête n'a pas d'informations dans le fichier de zone, nous lancerons une solution vers un autre DNS ~
                192.168.146.2;};   //La destination à lancer. Il semble que le FAI ou Google DNS soit bien. Le routeur le plus proche est également acceptable. Cette fois-ci.
        };

logging {               //Paramètres d'acquisition du journal
//        channel default_debug {      //La personne définie par défaut n'a pas suffisamment d'informations, alors commentez
//                file "data/named.run";
//                severity dynamic;
//        };
        channel "default-log" {       //Décrire les nouveaux paramètres d'acquisition
                file "/var/named/log/default.log" versions 5 size 10M;
                severity debug;
               print-time yes;
                print-severity yes;
                print-category yes;
        };

        category default{"default-log";};  //default-J'utiliserai le journal ~
};

// zone "." IN {               //★ Commentaires parce que les adresses non résolues n'ont pas d'informations de zone. J'étais vraiment dedans(Grosse défaite)
//      type hint;
//      file "named.ca";
// };

// include "/etc/named.rfc1912.zones";
// include "/etc/named.root.key";

zone "testdomain.local" {          //Spécifiez l'emplacement du fichier de zone du domaine défini
        type master;             //J'écrirai en détail après cela.
        file "testdomain.local.zone";
};

Création du répertoire de sortie / vérification de la syntaxe du journal

Créez à l'avance le répertoire de sortie du journal spécifié dans ↑. Créez le répertoire spécifié dans "/etc/named.conf" et "file" / set permissions!

dns01.


[root@dns01 ~]# mkdir /var/named/log
[root@dns01 ~]# chown named.named /var/named/log

Vérifiez la syntaxe lorsque vous avez terminé! !! !! !! Ensuite, dès que l'erreur disparaît. (La ligne vous indiquera l'erreur en détail.)

dns01.


[root@dns01 ~]# named-checkconf

Création de fichier de zone

Créez un fichier de zone DNS . La table de correspondance «nom de domaine: adresse IP» est la partie principale du fichier, et en plus de cela, le comportement lorsqu'une requête DNS arrive est également décrit un peu. Moins que!

dns01.(Créer un nouveau)


[root@dns01 ~]# vi /var/named/testdomain.local.zone

/var/named/testdomain.local.zone


$TTL 86400                                       //↓ Adresse e-mail de l'administrateur.
@       IN      SOA     dns01.testdomain.local.   root.testdomain.local. (
          2020050502   ;Serial //Numéro de série. Mettez à jour lorsque le fichier est mis à jour! !! Date+Il semble que l'unité 0 soit souvent utilisée
          3600         ;Refresh  //Sentiment de transfert de zone
          300          ;Retry   //Sentiment de réessayer lorsque le transfert échoue
          360000       ;Expire   //Temps de rétention des fichiers de zone
          86400   )    ;Negative //Temps mis en cache sur d'autres serveurs

//↓ ↓ Nom d'hôte ↓ ↓ ↓ ↓ Type d'enregistrement ↓ ↓ ↓ ↓ Adresse IP ↓ ↓
                        IN      NS      dns01.testdomain.local
dns01.testdomain.local  IN      A       192.168.146.140
dns01                   IN      A       192.168.146.140
db01                    IN      A       192.168.146.130
dhcp01                  IN      A       192.168.146.150
pr01                    IN      A       192.168.146.160
test01                  IN      A       192.168.146.10

Et vérification de la syntaxe !!!!!

dns01.


[root@dns01 ~]# named-checkconf -z

Cette vérification produira un journal quel que soit le succès / échec, alors assurez-vous de vérifier attentivement le contenu! S'il y a une erreur, vous pouvez vérifier les détails avec [systemctl status named].

Paramètres du pare-feu

Si vous l'avez coupé depuis le début, vous pouvez l'ignorer. Cette fois, c'est un environnement de vérification, donc vous pouvez le désactiver, mais ... J'utiliserai également la méthode de forage pour étudier.

dns01.


[root@dns01 ~]# firewall-cmd --add-service=dns
[root@dns01 ~]# firewall-cmd --reload

IPv6 désactivé

dns01.


[root@dns01 ~]# vi /etc/sysconfig/named

Ajoutez "OPTIONS =" - 4 ""!

Début du service

dns01.


[root@dns01 ~]# status named.service
[root@dns01 ~]# status named-chroot.service

S'il n'y a pas d'erreurs particulières, c'est la fin de la construction! Je vous remercie pour votre travail acharné. .. .. .. Continuons à vérifier si la résolution de nom est possible ~

Vérification

Cette fois, seul le fichier de zone de transfert est créé, vérifions donc si l'adresse IP peut être tirée du nom de domaine. J'essaierai de résoudre le nom de dns01 par le nom de domaine de test01 et le nom du domaine externe. image.png image.png

J'ai fermé en toute sécurité! </ b>

Sommaire

Les appareils du réseau 192.168.146.0/24 peuvent désormais communiquer par nom de domaine! !! C'est sûr car vous n'avez qu'à ajouter des enregistrements au fichier de zone lorsque vous configurez un nouveau serveur à l'avenir ◎ Ensuite!

Recommended Posts