Einen Linux Nameserver mit bind erstellen
May 26, 2018 | Kategorie: tutorials

Kostenloser Nameserver zum Betrieb Ihres eigenen DNS Server.

Nameserver (DNS Server) verwalten die Informationen, welche IP-Adresse zu welchem Domain-Namen gehört. Jedesmal, wenn eine Seite im Internet angewählt wird, muss ein Nameserver die entsprechende IP-Adresse des Servers auf dem die Homepage liegt (techn. “gehostet wird”) zurückliefern und auflösen, damit der Computer eine direkte Verbindung zum Server aufbauen kann. Internetprovider oder firmeneigene Intranet Umgebungen haben ebenfalls eigene Nameserver. BIND ist ein von der Universität Berkeley (USA) entwickelter (Open Source) DNS Server und wurde auf fast jedes Betriebssystem portiert. Bis heute gilt BIND als „die Referenz“ unter den DNS Servern und bildet den Grundstock des heutigen Internets. Inzwischen wurde die Entwicklung des BIND Servers vom herstellerunabhängigen Internet Systems Consortium (ISC) übernommen.

Installation

Bind (aktuell Bind9) läßt sich mit dem apt tool installieren. Bringen Sie Ihr System davor auf den neuesten Stand.

apt-get install bind9

Die Konfiguration erfolgt über das Verzeichnis /etc/bind worin sich jetzt folgende Dateien befinden sollten:

db.0      db.local    named.conf          zones.rfc1918
db.127    db.root     named.conf.local    rndc.key   
db.255    db.empty    named.conf.options

In den Dateien, die mit named. beginnen, wird die allgemeine Funktion des Servers konfiguriert. Die db.-Dateien sind dagegen die Zonendateien, in denen die eigentlichen DNS Daten abgelegt werden.

Wenn nur IPv4 verwendet wird, sollte der Paramter -4 in /etc/default/bind9 unter OPTIONS="..." hinzugefügt werden.

Globale Kofiguration

In die Datei named.conf wird die globale (systemweite) Konfiguration geschrieben. Fürs erste muss hier nichts geändert werden.

options {
    directory "/var/named";
    pid-file "/var/run/named/named.pid";
    auth-nxdomain yes; // no
    datasize default;
    // Uncomment these to enable IPv6 connections support
    // IPv4 will still work:
    //  listen-on-v6 { any; };
    // Add this for no IPv4:
    //  listen-on { none; };

    // Default security settings.
    allow-recursion { 127.0.0.1; };
    allow-transfer { none; };
    allow-update { none; };
    version none;
    hostname none;
    server-id none;
};

Forward Lookup Zone

Die Forward Lookup Zone ist dazu da, Domainnamen in IP Adressen umzuwandeln. Eine Forward lookup zone legt man an indem man eine Datei nach dem Muster db.domainname anlegt welche z.B so aussieht.

$TTL 38400
@       IN      SOA     zarat.local. ns.zarat.local. (
                        12345 ; serial number
                        604800     ; refresh
                        86400      ; update retry
                        2419200    ; expiry
                        604800     ; negative cache ttl
                        )

@       IN      NS      ns.zarat.local.
ns      IN      A       192.168.0.80

www     IN      A       192.168.0.80

ACHTUNG: Besonders wichtig an dieser Stelle ist eine Leerzeile am Ende der Datei!

Reverse Lookup Zone

Die Reverse Lookup Zone ist hingegen dazu da, IP Adressen in Domainnamen umzuwandeln. Diese wird allerdings

rückwärts gelesen
und nur die ersten n Oktette wobei n die Anzahl der Oktette im Netzanteil entspricht. Bei einer /24 IP wären das 3.

Bei einer IP 91.216.248.12 wäre der Dateiname bei einem /24 Netz also db.248.216.91 und der entsprechende Inhalt

$TTL 2D
@       IN      SOA     zarat.ml. (
                                1234567890      ; Serial
                                        8H      ; Refresh
                                        2H      ; Retry
                                        4W      ; Expire
                                        2D )    ; TTL Negative Cache

@       IN      NS      zarat.ml.

12      IN      PTR     zarat.ml.
12      IN      PTR     wiki.zarat.ml.

Zonen Datei

Zuletzt gibt man die neuen Zonen noch in der Hauptkonfiguration /etc/bind/named.conf bzw in einer eingebundenen Datei named.conf.default-zones bekannt.

zone "zarat.ml" {
    type master;
    file "/etc/bind/db.zarat.ml";
};

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

Debugging

Ob eine Zonendatei korrekt angelegt wurde kann man mit

named-checkzone example.com /etc/bind/db.example.com

prüfen.

Beitrag auf Github bearbeiten
Suche
Weiterlesen