Erste Schritte mit dem BIND DNS Server

Domain Name Server (DNS) ist eine entscheidende Komponente der Internetinfrastruktur, und der Aufbau Ihres DNS-Servers kann herausfordernd sein. Nun, nicht mit BIND, wo Sie in kürzester Zeit Ihren BIND DNS-Server erstellen können. BIND hat unter Administratoren einen ausgezeichneten Ruf für seine Flexibilität und Unterstützung für hohe Verfügbarkeit.

In diesem Artikel erfahren Sie, wie Sie einen sicheren BIND DNS-Server installieren und konfigurieren und überprüfen, dass Subdomänen richtig auf die entsprechende IP-Adresse aufgelöst werden.

Lesen Sie weiter und erstellen Sie Ihren DNS-Server ohne Schwierigkeiten!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Stellen Sie sicher, dass Sie folgendes haben, um mitzumachen.

  • A Linux server – This example uses the Ubuntu 20.04 server.
  • A non-root user with root privileges or root/administrator user.
  • A domain name pointed to the server IP address – This demo uses the atadomain.io domain and server IP address 172.16.1.10.

Installieren der BIND-Pakete

Das Standard-Ubuntu-Repository bietet BIND-Pakete, ist jedoch nicht in Ihrem System installiert. Sie können BIND als Haupt-DNS-Server oder nur als autoritär installieren. BIND bietet leistungsstarke Funktionen wie Master-Slave-Installationsunterstützung, DNSSEC-Unterstützung und integrierte Zugriffssteuerungslisten (ACL).

Um mit BIND DNS zu beginnen, müssen Sie zuerst die BIND-Pakete auf Ihrem Rechner mit dem apt-Paketmanager installieren.

1. Öffnen Sie Ihr Terminal und melden Sie sich auf Ihrem Server an.

2. Als Nächstes führen Sie den Befehl apt update aus, um das Repository-Paketindex zu aktualisieren und zu aktualisieren. Dieser Befehl stellt sicher, dass Sie die neueste Version der Pakete installieren.

sudo apt update
Refreshing Package Index

3. Nachdem Sie aktualisiert haben, führen Sie den folgenden Befehl apt install aus, um BIND-Pakete für den Ubuntu-Server zu installieren.

Die Pakete bind9-utils und bind9-dnsutils bieten zusätzliche Befehlszeilentools für BIND. Diese Pakete sind nützlich zum Testen und Verwalten des BIND-DNS-Servers.

sudo apt install bind9 bind9-utils bind9-dnsutils -y
Installing BIND Packages

4. Führen Sie schließlich den Befehl systemctl unten aus, um den BIND-Dienst zu überprüfen.

Das BIND-Paket wird mit dem Dienst named geliefert und wird während der BIND-Paketinstallation automatisch gestartet und aktiviert.

# Überprüfen, ob der benannte Dienst aktiviert ist
sudo systemctl is-enabled named

# Überprüfen Sie den Status des benannten Dienstes
sudo systemctl status named

Jetzt sollten Sie sehen, dass der BIND-Dienst named aktiviert ist und der Status als aktiv (ausgeführt) angezeigt wird. Zu diesem Zeitpunkt wird der BIND-Dienst automatisch beim Start des Systems ausgeführt.

Checking BIND named service

Konfigurieren des BIND DNS-Servers

Sie haben jetzt BIND-Pakete auf dem Ubuntu-Server installiert, also ist es an der Zeit, die BIND-Installation auf Ihrem Ubuntu-Server einzurichten. Wie? Durch Bearbeiten der BIND- und Dienstkonfigurationen von named.

Alle Konfigurationen für BIND sind im Verzeichnis /etc/bind/ verfügbar, und Konfigurationen für den Dienst named unter /etc/default/named.

1. Bearbeiten Sie die Konfiguration /etc/default/named mit Ihrem bevorzugten Editor und fügen Sie die Option -4 in die Zeile OPTIONS wie unten gezeigt hinzu. Diese Option führt den Dienst named nur für IPv4 aus.

OPTIONS="-4 -u bind"

Speichern Sie die vorgenommenen Änderungen und schließen Sie die Datei.

Configuring BIND to Run on IPv4 Only

2. Bearbeiten Sie als nächstes die Datei /etc/bind/named.conf.options und füllen Sie die folgende Konfiguration unterhalb der Zeile directory "/var/cache/bind"; aus.

Diese Konfiguration setzt den BIND-Dienst auf den Standard-UDP-Port 53 auf der lokalen Host-IP-Adresse und der öffentlichen IP-Adresse des Servers (172.16.1.10). Gleichzeitig erlaubt es Abfragen von jedem Host an den BIND-DNS-Server unter Verwendung des Cloudflare-DNS 1.1.1.1 als Weiterleitung.

    // listen port and address
    listen-on port 53 { localhost; 172.16.1.10; };

    // for public DNS server - allow from any
    allow-query { any; };

    // define the forwarder for DNS queries
    forwarders { 1.1.1.1; };

    // enable recursion that provides recursive query
    recursion yes;

Am Ende kommentieren Sie die Zeile listen-on-v6 { any; };  aus, wie unten gezeigt, um den Dienst named vom Ausführen auf IPv6 zu deaktivieren.

Editing the BIND Configuration Options

3. Führen Sie abschließend den folgenden Befehl aus, um die BIND-Konfiguration zu überprüfen.

sudo named-checkconf

Wenn es keine Ausgabe gibt, sind die BIND-Konfigurationen korrekt und enthalten keine Fehler.

Verifying BIND Configurations

Einrichten von DNS-Zonen

Sie haben nun die Grundkonfiguration des BIND DNS-Servers eingerichtet. Sie sind bereit, einen DNS-Server mit Ihrer Domain zu erstellen und weitere Subdomänen für Ihre Anwendungen hinzuzufügen. Sie müssen eine neue DNS-Zonenkonfiguration definieren und erstellen.

In diesem Tutorial erstellen Sie einen neuen Namenserver (ns1.atadomain.io) und Subdomänen (www.atadomain.iomail.atadomain.iovault.atadomain.io).

1. Bearbeiten Sie die Datei /etc/bind/named.conf.local mit Ihrem bevorzugten Editor und fügen Sie die folgende Konfiguration hinzu.

Diese Konfiguration definiert die Vorwärtszone (/etc/bind/zones/forward.atadomain.io) und die Rückwärtszone (/etc/bind/zones/reverse.atadomain.io) für den Domainnamen atadomain.io.

zone "atadomain.io" {
    type master;
    file "/etc/bind/zones/forward.atadomain.io";
};

zone "1.16.172.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/reverse.atadomain.io";
};

Speichern Sie die Änderungen und schließen Sie die Datei.

Defining Forward Zone and Reverse Zone BIND

2. Führen Sie anschließend den folgenden Befehl aus, um ein neues Verzeichnis (/etc/bind/zones) für die Konfiguration von Zeichenketten-DNS-Zonen zu erstellen.

mkdir -p /etc/bind/zones/

3. Führen Sie jeden der folgenden Befehle aus, um die Standardvorwärts- und rückwärtige Zonenkonfiguration in das Verzeichnis /etc/bind/zones zu kopieren.

# Kopiere die Standardvorwärtszone
sudo cp /etc/bind/db.local /etc/bind/zones/forward.atadomain.io

# Kopiere die Standardrückwärtszone
sudo cp /etc/bind/db.127 /etc/bind/zones/reverse.atadomain.io

# Liste des Inhalts des Verzeichnisses /etc/bind/zones/
ls /etc/bind/zones/
Copying Default Zones Configurations

4. Bearbeiten Sie nun die Konfiguration der Vorwärtszone (/etc/bind/zones/forward.atadomain.io) mit Ihrem bevorzugten Editor und füllen Sie die folgende Konfiguration aus.

Die Konfiguration der Forward-Zone ist der Ort, an dem Sie Ihren Domainnamen und die Server-IP-Adresse definieren. Diese Konfiguration übersetzt den Domainnamen in die korrekte IP-Adresse des Servers.

Die folgende Konfiguration erstellt den folgenden Nameserver und Subdomänen:

  • ns1.atadomain.io – Der Haupt-Nameserver für Ihre Domain mit der IP-Adresse 172.16.1.10.
  • MX-Eintrag für die Domain atadomain.io, der von mail.atadomain.io verarbeitet wird. Der MX-Eintrag wird für den Mailserver verwendet.
  • Subdomänen für Anwendungen: www.atadomain.iomail.atadomain.io und vault.atadomain.io.
;
; BIND data file for the local loopback interface
;
$TTL    604800
@       IN      SOA     atadomain.io. root.atadomain.io. (
                            2         ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL

; Define the default name server to ns1.atadomain.io
@       IN      NS      ns1.atadomain.io.

; Resolve ns1 to server IP address
; A record for the main DNS
ns1     IN      A       172.16.1.10


; Define MX record for mail
atadomain.io. IN   MX   10   mail.atadomain.io.


; Other domains for atadomain.io
; Create subdomain www - mail - vault
www     IN      A       172.16.1.10
mail    IN      A       172.16.1.20
vault   IN      A       172.16.1.50

Speichern Sie die Änderungen und schließen Sie die Datei.

Configuring Forward Zone BIND

5. Ähnlich wie bei der Forward-Zone bearbeiten Sie die Konfigurationsdatei der Reverse-Zone (/etc/bind/zones/reverse.atadomain.io) und füllen Sie die folgende Konfiguration aus.

Die Reverse-Zone übersetzt die Server-IP-Adresse in den Domainnamen. Die Reverse-Zone oder der PTR-Eintrag ist für Dienste wie den Mailserver unerlässlich, was sich auf das Ansehen des Mail-Servers auswirkt.

Der PTR-Eintrag verwendet den letzten Block der IP-Adresse, ähnlich dem PTR-Eintrag mit der Nummer 10 für die Server-IP-Adresse 172.16.1.10.

Diese Konfiguration erstellt die Reverse-Zone oder den PTR-Eintrag für die folgenden Domains:

  • Nameserver ns1.atadomain.io mit der Reverse-Zone oder dem PTR-Eintrag 172.16.1.10.
  • PTR-Eintrag für die Domain mail.atadomain.io auf die Server-IP-Adresse 172.16.1.20.
;
; BIND reverse data file for the local loopback interface
;
$TTL    604800
@       IN      SOA     atadomain.io. root.atadomain.io. (
                            1         ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL

; Name Server Info for ns1.atadomain.io
@       IN      NS      ns1.atadomain.io.


; Reverse DNS or PTR Record for ns1.atadomain.io
; Using the last number of DNS Server IP address: 172.16.1.10
10      IN      PTR     ns1.atadomain.io.


; Reverse DNS or PTR Record for mail.atadomain.io
; Using the last block IP address: 172.16.1.20
20      IN      PTR     mail.atadomain.io.

Speichern Sie die Änderungen und schließen Sie die Datei.

Configuring Reverse Zone BIND

6. Führen Sie nun die folgenden Befehle aus, um BIND-Konfigurationen zu überprüfen und zu bestätigen.

# Überprüfen der Hauptkonfiguration für BIND
sudo named-checkconf

# Überprüfen der Forward-Zone forward.atadomain.io
sudo named-checkzone atadomain.io /etc/bind/zones/forward.atadomain.io

# Überprüfen der Reverse-Zone reverse.atadomain.io
sudo named-checkzone atadomain.io /etc/bind/zones/reverse.atadomain.io

Wenn Ihre Konfiguration korrekt ist, sehen Sie eine Ausgabe ähnlich wie unten.

Checking and Verifying BIND configurations

7. Führen Sie abschließend den Befehl systemctl aus, um den named-Dienst neu zu starten und zu überprüfen. Dadurch werden neue Änderungen am named-Dienst angewendet.

# Named-Dienst neu starten
sudo systemctl restart named

# Named-Dienst überprüfen
sudo systemctl status named

Unten sehen Sie den Status des Named-Dienstes als aktiv (gestartet).

Restarting Named Service and Verifying Named Service Status

Öffnen Sie den DNS-Port mit der UFW-Firewall

Zu diesem Zeitpunkt haben Sie die Installation des BIND DNS-Servers abgeschlossen. Sie müssen jedoch Ihren DNS-Server noch sichern. Sie werden die UFW-Firewall einrichten und den DNS-Port für Anfragen an den Server öffnen. Dadurch können Clients Anfragen an den BIND DNS-Server stellen.

Aus Sicherheitsgründen wird empfohlen, die UFW-Firewall auf Ihrem Ubuntu-Server auszuführen und zu aktivieren.

1. Führen Sie den Befehl ufw unten aus, um verfügbare Anwendungen in der UFW-Firewall zu überprüfen.

sudo ufw app list

Sie sollten den Bind9 in der Anwendungsliste der UFW sehen.

Listing Available Applications on the UFW Firewall

2. Führen Sie nun den folgenden Befehl aus, um den Bind9 der UFW-Firewall zu erlauben.

sudo ufw allow Bind9
Adding UW Rule

3. Führen Sie abschließend den folgenden Befehl aus, um die aktivierten Regeln auf der UFW-Firewall zu überprüfen.

sudo ufw status

Sie sollten die Anwendung Bind9 in der Liste wie im Screenshot unten sehen.

Verifying List of Rules

Überprüfung der BIND DNS Server Installation

Sie haben die BIND DNS-Installation abgeschlossen und die UFW-Firewall konfiguriert. Aber wie überprüfen Sie Ihre DNS-Serverinstallation? Der Befehl dig wird Ihnen helfen.

Dig ist ein Befehlszeilen-Dienstprogramm zur Fehlerbehebung bei der DNS-Serverinstallation. dig führt DNS-Lookups für den angegebenen Domainnamen durch und zeigt detaillierte Antworten für das Ziel des Domainnamens an. Auf dem Ubuntu-System ist dig Teil des Pakets bind9-dnsutil.

Um Ihre BIND DNS-Serverinstallation zu überprüfen:

1. Führen Sie jeden der folgenden dig-Befehle aus, um die Subdomänen www.atadomain.io, mail.atadomain.io und vault.atadomain.io zu überprüfen.

Wenn Ihre DNS-Serverinstallation erfolgreich ist, wird jeder Subdomain gemäß der Konfiguration von forward.atadomain.io korrekt auf die entsprechende IP-Adresse aufgelöst.

# Überprüfung der Domainnamen
dig @172.16.1.10 www.atadomain.io
dig @172.16.1.10 mail.atadomain.io
dig @172.16.1.10 vault.atadomain.io

Hier finden Sie die Ausgabe der Subdomain www.atadomain.io, aufgelöst auf die Server-IP-Adresse 172.16.1.10.

Checking sub-domain www.atadomain.io

Unten sehen Sie die Subdomain mail.atadomain.io, aufgelöst auf die Server-IP-Adresse 172.16.1.20.

Checking sub-domain mail.atadomain.io

Und unten sehen Sie die Subdomain vault.atadomain.io, aufgelöst auf die Server-IP-Adresse 172.16.1.50.

Checking sub-domain vault.atadomain.io

2. Führen Sie anschließend den dig-Befehl unten aus, um den MX-Eintrag für die Domain atadomain.io zu überprüfen.

dig @172.16.1.10 atadomain.io MX

Sie sollten sehen, dass die Domain atadomain.io den MX-Eintrag mail.atadomain.io hat.

Checking MX record for atadomain.io

3. Führen Sie abschließend die folgenden Befehle aus, um den PTR-Eintrag oder die Reverse Zone für die Server-IP-Adressen 172.16.1.10 und 172.16.1.20 zu überprüfen.

Wenn Ihre BIND-Installation erfolgreich ist, wird jede IP-Adresse auf den im reverse.atadomain.io konfigurierten Domainnamen aufgelöst.

# Überprüfung des PTR-Eintrags oder Reverse DNS
dig @172.16.1.10 -x 172.16.1.10
dig @172.16.1.10 -x 172.16.1.20

Sie können unten sehen, dass die Server-IP-Adresse 172.16.1.10 auf den Domainnamen ns1.atadomain.io aufgelöst ist.

Checking PTR record for IP address 172.16.1.10

Wie unten zu sehen ist, wird die Server-IP-Adresse 172.16.1.20 auf den Domainnamen mail.atadomain.io aufgelöst.

Checking PTR record for IP address 172.16.1.20

Abschluss

Im Verlauf dieses Tutorials haben Sie gelernt, wie Sie einen sicheren BIND DNS-Server auf Ihrem Ubuntu-Server erstellen und einrichten. Sie haben auch die Vorwärts- und Rückwärtszone erstellt, um Ihre Domäne hinzuzufügen, und DNS-Server durch Ausführen von dig-Befehlen überprüft.

Wie können Sie nun einen BIND DNS-Server in Ihrer Umgebung implementieren? Vielleicht als autoritativen Server implementieren? Oder eine hohe Verfügbarkeit mit einer Master-Slave BIND-Installation einrichten?

Source:
https://adamtheautomator.com/bind-dns-server/