DNS Server Setup: Bind9 oder Unbound als Resolver betreiben

Ein funktionierender DNS-Server ist das Herzstück jeder Netzwerkumgebung, sei es für interne Firmennetze oder für öffentliche Resolver. Mit einem lokalen DNS-Server können Anfragen schneller beantwortet, Zonen zentral verwaltet und Sicherheit durch Filterung und Logging erhöht werden. In diesem Tutorial zeigen wir, wie man unter Linux Bind9 oder Unbound als DNS-Server installiert und konfiguriert.

Voraussetzungen

Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass Sie folgende Punkte erfüllt haben:

  • Linux-Server (Ubuntu, Debian, CentOS, Rocky Linux, AlmaLinux) mit Root-Zugriff
  • Basiswissen über IP-Adressen, Netzwerke und DNS
  • Paketverwaltungstools wie apt oder dnf
  • Optional: Firewall-Zugang auf Port 53 UDP/TCP

Bind9 installieren

Ubuntu / Debian

sudo apt update
sudo apt install bind9 bind9utils bind9-doc -y

CentOS / Rocky / AlmaLinux

sudo dnf install bind bind-utils -y

Bind9 ist ein leistungsfähiger, autoritativer und rekursiver DNS-Server, der häufig in Unternehmensnetzwerken eingesetzt wird. Nach der Installation werden die Konfigurationsdateien hauptsächlich unter /etc/bind (Debian/Ubuntu) oder /etc/named (RHEL/CentOS) abgelegt.

Grundkonfiguration von Bind9

named.conf anpassen

sudo nano /etc/bind/named.conf.options

Wichtige Parameter:

options {
    directory "/var/cache/bind";
    recursion yes;               // Rekursive Abfragen erlauben
    allow-query { any; };        // Zugriff erlauben
    listen-on { 0.0.0.0; };      // Alle Interfaces abhören
    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
};

Zonen definieren

Für interne Domains erstellen Sie Zonen in named.conf.local:

zone "example.local" {
    type master;
    file "/etc/bind/zones/db.example.local";
};

zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192.168.0";
};

Zone-Dateien anlegen

sudo mkdir /etc/bind/zones
sudo nano /etc/bind/zones/db.example.local
$TTL    604800
@       IN      SOA     ns1.example.local. admin.example.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

; Nameserver
@ IN NS ns1.example.local.

; A-Records
ns1 IN A 192.168.0.10
host1 IN A 192.168.0.20

Reverse-Zone

sudo nano /etc/bind/zones/db.192.168.0
$TTL    604800
@       IN      SOA     ns1.example.local. admin.example.local. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )

; Nameserver
@ IN NS ns1.example.local.

; PTR-Records
10 IN PTR ns1.example.local.
20 IN PTR host1.example.local.

Unbound installieren

Ubuntu / Debian

sudo apt update
sudo apt install unbound -y

CentOS / Rocky / AlmaLinux

sudo dnf install unbound -y

Unbound ist ein schlanker, rekursiver Resolver, ideal für lokale Caching-Server. Er bietet DNSSEC-Support, einfache Konfiguration und gute Performance.

Unbound konfigurieren

Die Hauptkonfigurationsdatei ist /etc/unbound/unbound.conf. Minimalbeispiel:

server:
    verbosity: 1
    interface: 0.0.0.0
    access-control: 0.0.0.0/0 allow
    do-ip4: yes
    do-udp: yes
    do-tcp: yes
    port: 53
    root-hints: "/etc/unbound/root.hints"
    auto-trust-anchor-file: "/var/lib/unbound/root.key"
    hide-identity: yes
    hide-version: yes

Firewall konfigurieren

sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw reload

Server starten und testen

sudo systemctl enable bind9
sudo systemctl start bind9
sudo systemctl status bind9

oder für Unbound

sudo systemctl enable unbound
sudo systemctl start unbound
sudo systemctl status unbound

DNS testen

Mit dig oder nslookup lassen sich Abfragen prüfen:

dig @localhost host1.example.local
dig @localhost -x 192.168.0.20

Best Practices

  • DNSSEC aktivieren, wenn möglich
  • Nur vertrauenswürdige Clients erlauben (allow-query / access-control)
  • Regelmäßige Backups der Zonen-Dateien
  • Server regelmäßig aktualisieren
  • Monitoring von Logs und Anfragen einrichten
  • Reverse-DNS für interne Hosts konfigurieren
  • Firewall und IP-Forwarding prüfen

Mit Bind9 oder Unbound haben Sie einen zuverlässigen DNS-Server unter Linux eingerichtet, der sowohl autoritativ für eigene Domains als auch als rekursiver Resolver für interne Clients dienen kann. So verbessern Sie die Performance, Kontrolle und Sicherheit Ihres Netzwerks.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles