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
aptoderdnf - 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.
