Inhaltsverzeichnis
Zusammenfassung
DNS (Domain Name System) ist zur Auflösung der Domänen- und Hostnamen in IP-Adressen erforderlich. Auf diese Weise wird die IP-Adresse 192.168.2.100 beispielsweise dem Hostnamen jupiter
zugewiesen. Bevor Sie Ihren eigenen Namenserver einrichten, sollten Sie die allgemeinen Informationen zu DNS in Abschnitt 21.3, „Namensauflösung“ lesen. Die folgenden Konfigurationsbeispiele beziehen sich auf BIND.
Der Domänen-Namespace wird in Regionen, so genannte Zonen, unterteilt. So ist beispielsweise example.com
der Bereich (oder die Zone) example
der Domäne com
.
Der DNS-Server ist ein Server, auf dem der Name und die IP-Informationen für eine Domäne gespeichert sind. Sie können einen primären DNS-Server für die Masterzone, einen sekundären Server für die Slave-Zone oder einen Slave-Server ohne jede Zone für das Caching besitzen.
Die Masterzone beinhaltet alle Hosts aus Ihrem Netzwerk und der DNS-Server der Masterzone speichert die aktuellen Einträge für alle Hosts in Ihrer Domäne.
Eine Slave-Zone ist eine Kopie der Masterzone. Der DNS-Server der Slave-Zone erhält seine Zonendaten mithilfe von Zonentransfers von seinem Masterserver. Der DNS-Server der Slave-Zone antwortet autorisiert für die Zone, solange er über gültige (nicht abgelaufene) Zonendaten verfügt. Wenn der Slave keine neue Kopie der Zonendaten erhält, antwortet er nicht mehr für die Zone.
Forwarders sind DNS-Server, an die der DNS-Server Abfragen sendet, die er nicht bearbeiten kann. Zum Aktivieren verschiedener Konfigurationsquellen in einer Konfiguration wird netconfig
verwendet (siehe auch man 8 netconfig).
Der Eintrag besteht aus Informationen zu Namen und IP-Adresse. Die unterstützten Einträge und ihre Syntax sind in der BIND-Dokumentation beschrieben. Einige spezielle Einträge sind beispielsweise:
Ein NS-Eintrag informiert die Namenserver darüber, welche Computer für eine bestimmte Domänenzone zuständig sind.
Die MX (Mailaustausch)-Einträge beschreiben die Computer, die für die Weiterleitung von Mail über das Internet kontaktiert werden sollen.
Der SOA (Start of Authority)-Eintrag ist der erste Eintrag in einer Zonendatei. Der SOA-Eintrag wird bei der Synchronisierung von Daten zwischen mehreren Computern über DNS verwendet.
Zur Installation eines DNS-Servers starten Sie YaST und wählen Sie
+ aus. Wählen Sie + und schließlich aus. Bestätigen Sie die Installation der abhängigen Pakete, um den Installationsvorgang abzuschließen.Verwenden Sie das DNS-Modul von YaST, um einen DNS-Server für das lokale Netzwerk zu konfigurieren. Beim ersten Starten des Moduls werden Sie von einem Assistenten aufgefordert, einige grundlegende Entscheidungen hinsichtlich der Serveradministration zu treffen. Mit dieser Ersteinrichtung wird eine grundlegende Serverkonfiguration vorgenommen. Für erweiterte Konfigurationsaufgaben, beispielsweise zum Einrichten von ACLs, für Protokollaufgaben, TSIG-Schlüssel und andere Optionen, verwenden Sie den Expertenmodus.
Der Assistent besteht aus drei Schritten bzw. Dialogfeldern. An den entsprechenden Stellen in den Dialogfeldern haben Sie die Möglichkeit, in den Expertenkonfigurationsmodus zu wechseln.
Wenn Sie das Modul zum ersten Mal starten, wird das Dialogfeld Abbildung 23.1, „DNS-Server-Installation: Forwarder-Einstellungen“) geöffnet. Die entscheidet darüber, welche Geräte Forwarder zur Verfügung stellen sollten oder ob Sie Ihre eigene bereitstellen. Weitere Informationen über netconfig finden Sie auf man 8 netconfig.
(sieheForwarders sind DNS-Server, an die der DNS-Server Abfragen sendet, die er nicht selbst bearbeiten kann. Geben Sie ihre IP-Adresse ein und klicken Sie auf
.
Das Dialogfeld Abschnitt 23.6, „Zonendateien“ beschrieben. Bei einer neuen müssen Sie unter einen Namen angeben. Um eine Reverse Zone hinzuzufügen, muss der Name auf .in-addr.arpa
enden. Wählen Sie zum Schluss den (Master, Slave oder Forward) aus. Weitere Informationen hierzu finden Sie unter Abbildung 23.2, „DNS-Server-Installation: DNS-Zonen“. Klicken Sie auf , um andere Einstellungen für eine bestehende Zone zu konfigurieren. Zum Entfernen einer klicken Sie auf .
Im letzten Dialogfeld können Sie den DNS-Port in der Firewall öffnen, indem Sie auf Abbildung 23.3, „DNS-Server-Installation: Wizard beenden“.
klicken. Legen Sie anschließend fest, ob der DNS-Server beim Booten gestartet werden soll ( oder ). Außerdem können Sie die LDAP-Unterstützung aktivieren. Weitere Informationen hierzu finden Sie unterNach dem Starten des Moduls öffnet YaST ein Fenster, in dem mehrere Konfigurationsoptionen angezeigt werden. Nach Abschluss dieses Fensters steht eine DNS-Server-Konfiguration mit Grundfunktionen zur Verfügung:
Legen Sie unter
fest, ob der DNS-Server beim Booten des Systems oder manuell gestartet werden soll. Um den DNS-Server sofort zu starten, klicken Sie auf . Um den DNS-Server anzuhalten, klicken Sie auf . Zum Speichern der aktuellen Einstellungen wählen Sie . Sie können den DNS-Anschluss in der Firewall mit öffnen und die Firewall-Einstellungen mit bearbeiten.Wenn Sie
wählen, werden die Zone-Dateien von einer LDAP-Datenbank verwaltet. Alle Änderungen an Zonendaten, die in der LDAP-Datenbank gespeichert werden, werden vom DNS-Server gleich nach dem Neustart erfasst oder er wird aufgefordert, seine Konfiguration neu zu laden.Falls Ihr lokaler DNS-Server eine Anforderung nicht beantworten kann, versucht er, diese Anforderung an einen man 8 netconfig.
weiterzuleiten, falls dies so konfiguriert wurde. Dieser Forwarder kann manuell zur hinzugefügt werden. Wenn der Forwarder nicht wie bei Einwahlverbindungen statisch ist, wird die Konfiguration von verarbeitet. Weitere Informationen über netconfig finden Sie aufIn diesem Abschnitt werden grundlegende Serveroptionen festgelegt. Wählen Sie im Menü
das gewünschte Element und geben Sie dann den Wert im entsprechenden Eintragsfeld an. Nehmen Sie den neuen Eintrag auf, indem Sie auf klicken.
Um festzulegen, was und wie der DNS-Server protokollieren soll, wählen Sie /var/log/messages
, indem Sie auswählen oder geben Sie eine andere Datei an, indem Sie auswählen. In letzterem Fall müssen Sie außerdem einen Namen, die maximale Dateigröße in Megabyte und die Anzahl der zu speichernden Versionen von Protokolldateien angeben.
Weitere Optionen sind unter jede Abfrage protokolliert. In diesem Fall kann die Protokolldatei extrem groß werden. Daher sollte diese Option nur zur Fehlersuche aktiviert werden. Um den Datenverkehr zu protokollieren, der während Zonenaktualisierungen zwischen dem DHCP- und dem DNS-Server stattfindet, aktivieren Sie . Um den Datenverkehr während eines Zonentransfers von Master zu Slave zu protokollieren, aktivieren Sie . Weitere Informationen hierzu finden Sie unter Abbildung 23.4, „DNS-Server: Protokollieren“.
verfügbar. Durch Aktivieren von wirdIn diesem Dialogfeld legen Sie ACLs (Access Control Lists = Zugriffssteuerungslisten) fest, mit denen Sie den Zugriff einschränken. Nach der Eingabe eines eindeutigen Namens unter
geben Sie unter eine IP-Adresse (mit oder ohne Netzmaske) wie folgt an:{ 192.168.1/24; }
Die Syntax der Konfigurationsdatei erfordert, dass die Adresse mit einem Strichpunkt endet und in geschwungenen Klammern steht.
Der Hauptzweck von TSIG-Schlüsseln (Transaction Signatures = Transaktionssignaturen) ist die Sicherung der Kommunikation zwischen DHCP- und DNS-Servern. Diese werden unter Abschnitt 23.8, „Sichere Transaktionen“ beschrieben.
Zum Erstellen eines TSIG-Schlüssels geben Sie einen eindeutigen Namen im Feld mit der Beschriftung
ein und geben die Datei an, in der der Schlüssel gespeichert werden soll ( ). Bestätigen Sie Ihre Einstellung mit .Wenn Sie einen vorher erstellten Schlüssel verwenden möchten, lassen Sie das Feld
leer und wählen die Datei, in der der gewünschte Schlüssel gespeichert wurde, unter . Dann bestätigen Sie die Auswahl mit .Wenn Sie eine Slave-Zone hinzufügen möchten, klicken Sie auf
, wählen Sie den Zonentyp aus, geben Sie den Namen der neuen Zone ein und klicken Sie auf .Geben Sie im
unter den Master an, von dem der Slave die Daten abrufen soll. Um den Zugriff auf den Server zu beschränken, wählen Sie eine der ACLs aus der Liste aus.
Wenn Sie eine Masterzone hinzufügen möchten, klicken Sie auf example.com
hinzufügen, die auf Hosts in einem Subnetz 192.168.1.0/24
zeigt, sollten Sie auch eine Reverse Zone für den betreffenden IP-Adressbereich erstellen. Per Definition sollte dieser den Namen 1.168.192.in-addr.arpa
erhalten.
Wenn Sie eine Masterzone bearbeiten möchten, klicken Sie auf
, wählen Sie die Masterzone in der Tabelle aus und klicken Sie auf . Dieses Dialogfeld besteht aus mehreren Seiten: (die zuerst geöffnete Seite), , , und .Im grundlegenden Dialogfeld in Abbildung 23.5, „DNS-Server: Zonen-Editor (Grundlagen)“ können Sie die Einstellungen für das dynamische DNS festlegen und auf Optionen für Zonentransfers an Clients und Slave-Namenserver zugreifen. Zum Zulassen dynamischer Aktualisierungen von Zonen wählen Sie sowie den entsprechenden TSIG-Schlüssel aus. Der Schlüssel muss definiert werden, bevor die Aktualisierung startet. Zum Aktivieren der Zonentransfers wählen Sie die entsprechenden ACLs. ACLs müssen bereits definiert sein.
Wählen Sie im Dialogfeld
aus, ob Zonen-Transfers aktiviert werden sollen. Verwenden Sie die aufgelisteten ACLs, um festzulegen, wer Zonen herunterladen kann.Im Dialogfeld Abbildung 23.6, „DNS-Server: Zonen-Editor (DNS-Einträge)“.
können Sie alternative Nameserver für die angegebenen Zonen definieren. Vergewissern Sie sich, dass Ihr eigener Namenserver in der Liste enthalten ist. Um einen Eintrag hinzuzufügen, geben Sie seinen Namen unter ein und bestätigen Sie den Vorgang anschließend mit . Weitere Informationen hierzu finden Sie unterUm einen Mailserver für die aktuelle Zone zur bestehenden Liste hinzuzufügen, geben Sie die entsprechende Adresse und den entsprechenden Prioritätswert ein. Bestätigen Sie den Vorgang anschließend durch Auswahl von Abbildung 23.7, „DNS-Server: Zonen-Editor (MX-Einträge)“.
. Weitere Informationen hierzu finden Sie unterAuf dieser Seite können Sie SOA (Start of Authority)-Einträge erstellen. Eine Erklärung der einzelnen Optionen finden Sie in Beispiel 23.6, „Die Datei /var/lib/named/example.com.zone“.
In diesem Dialogfeld wird die Namenauflösung verwaltet. Geben Sie unter A
-Eintrags, wie zum Beispiel:
hostname.example.com. IN A 192.168.0.1 1.0.168.192.in-addr.arpa IN PTR hostname.example.com.
Bearbeiten der Reverse Zone | |
---|---|
Wechseln Sie nach dem Hinzufügen einer Forward Zone wieder in das Hauptmenü und wählen Sie die Reverse Zone zur Bearbeitung aus. Markieren Sie im Karteireiter das Kontrollkästchen und wählen Sie Ihre Forward Zone aus. Auf diese Weise werden alle Änderungen an der Forward Zone automatisch in der Reverse Zone aktualisiert. |
Bei openSUSE®-Systemen ist der Namenserver BIND (Berkeley Internet Name Domain) vorkonfiguriert, so dass er problemlos unmittelbar nach der Installation gestartet werden kann. Wenn Sie bereits über eine funktionierende Internetverbindung verfügen und 127.0.0.1
als Namenserveradresse für localhost
in /etc/resolv.conf
eingegeben haben, verfügen Sie normalerweise bereits über eine funktionierende Namenauflösung, ohne dass Ihnen der DNS des Anbieters bekannt sein muss. BIND führt die Namenauflösung über den Root-Namenserver durch. Dies ist ein wesentlich langsamerer Prozess. Normalerweise sollte der DNS des Anbieters zusammen mit der zugehörigen IP-Adresse in die Konfigurationsdatei /etc/named.conf
unter forwarders
eingegeben werden, um eine effektive und sichere Namenauflösung zu gewährleisten. Wenn dies so weit funktioniert, wird der Namenserver als reiner Nur-Cache-Namenserver ausgeführt. Nur wenn Sie seine eigenen Zonen konfigurieren, wird er ein richtiger DNS. Ein einfaches Beispiel zur Veranschaulichung finden Sie unter /usr/share/doc/packages/bind/config
.
Automatische Anpassung der Namenserverinformationen | |
---|---|
Je nach Typ der Internet- bzw. Netzwerkverbindung können die Namenserverinformationen automatisch an die aktuellen Bedingungen angepasst werden. Legen Sie die Variable |
Richten Sie jedoch erst eine offizielle Domäne ein, wenn Sie eine Domäne von der zuständigen Stelle zugewiesen bekommen. Selbst wenn Sie eine eigene Domäne besitzen und diese vom Anbieter verwaltet wird, sollten Sie sie besser nicht verwenden, da BIND ansonsten keine Anforderungen für diese Domäne weiterleitet. Beispielsweise könnte in diesem Fall für diese Domäne der Zugriff auf den Webserver beim Anbieter nicht möglich sein.
Geben Sie zum Starten des Namenservers den Befehl rcnamedstart
als root
ein. Falls rechts in grüner Schrift "done " angezeigt wird, wurde named (wie der Namenserverprozess hier genannt wird) erfolgreich gestartet. Testen Sie den Namenserver umgehend auf dem lokalen System mit den Programmen host oder dig. Sie sollten localhost
als Standardserver mit der Adresse 127.0.0.1
zurückgeben. Ist dies nicht der Fall, enthält /etc/resolv.conf
einen falschen Namenservereintrag oder die Datei ist nicht vorhanden. Geben Sie beim ersten Test host 127.0.0.1
ein. Dieser Eintrag sollte immer funktionieren. Wenn Sie eine Fehlermeldung erhalten, prüfen Sie mit rcnamed status
, ob der Server tatsächlich ausgeführt wird. Wenn der Namenserver sich nicht starten lässt oder unerwartetes Verhalten zeigt, finden Sie die Ursache normalerweise in der Protokolldatei /var/log/messages
.
Um den Namenserver des Anbieters (oder einen bereits in Ihrem Netzwerk ausgeführten Server) als Forwarder zu verwenden, geben Sie die entsprechende IP-Adresse(n) im Abschnitt options
unter forwarders
ein. Bei den Adressen in Beispiel 23.1, „Weiterleitungsoptionen in named.conf“ handelt es sich lediglich um Beispiele. Passen Sie diese Einträge an Ihr eigenes Setup an.
Beispiel 23.1. Weiterleitungsoptionen in named.conf
options { directory "/var/lib/named"; forwarders { 10.11.12.13; 10.11.12.14; }; listen-on { 127.0.0.1; 192.168.1.116; }; allow-query { 127/8; 192.168/16 }; notify no; };
Auf den Eintrag options
folgen Einträge für die Zone, localhost
und 0.0.127.in-addr.arpa
. Der Eintrag type hint
unter "." sollte immer vorhanden sein. Die entsprechenden Dateien müssen nicht bearbeitet werden und sollten so funktionieren, wie sie sind. Achten Sie außerdem darauf, dass jeder Eintrag mit einem ";" abgeschlossen ist und dass sich die geschweiften Klammern an der richtigen Position befinden. Wenn Sie die Konfigurationsdatei /etc/named.conf
oder die Zonendateien geändert haben, teilen Sie BIND mit, die Datei erneut zu lesen. Verwenden Sie hierfür den Befehl rcnamedreload
. Sie erzielen dasselbe Ergebnis, wenn Sie den Namenserver mit rcnamedrestart
stoppen und erneut starten. Sie können den Server durch Eingabe von rcnamedstop
jederzeit stoppen.
Alle Einstellungen für den BIND-Namenserver selbst sind in der Datei /etc/named.conf
gespeichert. Die Zonendaten für die zu bearbeitenden Domänen, die aus Hostnamen, IP-Adressen usw. bestehen, sind jedoch in gesonderten Dateien im Verzeichnis /var/lib/named
gespeichert. Einzelheiten hierzu werden weiter unten beschrieben.
/etc/named.conf
lässt sich grob in zwei Bereiche untergliedern. Der eine ist der Abschnitt options
für allgemeine Einstellungen und der zweite besteht aus zone
-Einträgen für die einzelnen Domänen. Der Abschnitt logging
und die Einträge unter acl
(access control list, Zugriffssteuerungsliste) sind optional. Kommentarzeilen beginnen mit #
oder mit //
. Eine Minimalversion von /etc/named.conf
finden Sie in Beispiel 23.2, „Eine Grundversion von /etc/named.conf“.
Beispiel 23.2. Eine Grundversion von /etc/named.conf
options { directory "/var/lib/named"; forwarders { 10.0.0.1; }; notify no; }; zone "localhost" in { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone"; }; zone "." in { type hint; file "root.hint"; };
Dateiname
";
Gibt das Verzeichnis an, in dem BIND die Dateien mit den Zonendaten finden kann. In der Regel ist dies /var/lib/named
.
ip-adresse
; };
Gibt die Namenserver (zumeist des Anbieters) an, an die DNS-Anforderungen weitergeleitet werden sollen, wenn sie nicht direkt aufgelöst werden können. Ersetzen Sie IP-Adresse
durch eine IP-Adresse wie 192.168.1.116
.
Führt dazu, dass DNS-Anforderungen weitergeleitet werden, bevor versucht wird, sie über die Root-Namenserver aufzulösen. Anstatt forward first
kann forward only
verwendet werden. Damit werden alle Anforderungen weitergeleitet, ohne dass sie an die Root-Namenserver gesendet werden. Dies ist bei Firewall-Konfigurationen sinnvoll.
IP-Adresse
; \};
Informiert BIND darüber, an welchen Netzwerkschnittstellen und Ports Client-Abfragen akzeptiert werden sollen. port 53
muss nicht explizit angegeben werden, da 53
der Standardport ist. Geben Sie 127.0.0.1
ein, um Anforderungen vom lokalen Host zuzulassen. Wenn Sie diesen Eintrag ganz auslassen, werden standardmäßig alle Schnittstellen verwendet.
Informiert BIND darüber, welcher Port auf IPv6-Client-Anforderungen überwacht werden soll. Die einzige Alternative zu any
ist none
. Bei IPv6 akzeptiert der Server nur Platzhalteradressen.
Dieser Eintrag ist erforderlich, wenn eine Firewall ausgehende DNS-Anforderungen blockiert. Dadurch wird BIND angewiesen, Anforderungen extern von Port 53 und nicht von einem der Ports mit den hohen Nummern über 1024 aufzugeben.
Informiert BIND darüber, welcher Port für IPv6-Abfragen verwendet werden soll.
net
; };
Definiert die Netzwerke, von denen aus Clients DNS-Anforderungen aufgeben können. Ersetzen Sie Netz
durch Adressinformationen wie 192.168.2.0/24
. Der Wert /24
am Ende ist ein abgekürzter Ausdruck für die Netzmaske, hier 255.255.255.0
).
Legt fest, welche Hosts Zonentransfers anfordern können. Im vorliegenden Beispiel werden solche Anforderungen mit ! *
vollständig verweigert. Ohne diesen Eintrag können Zonentransfer ohne Einschränkungen von jedem beliebigen Ort aus angefordert werden.
Ohne diesen Eintrag generiert BIND in der Datei /var/log/messages
pro Stunde mehrere Zeilen mit statistischen Informationen. Setzen Sie diesen Wert auf "0", um diese Statistiken vollständig zu unterdrücken, oder legen Sie ein Zeitintervall in Minuten fest.
Diese Option legt fest, in welchen Zeitabständen BIND den Cache leert. Jedes Mal, wenn dies geschieht, wird ein Eintrag in /var/log/messages
ausgelöst. Die verwendete Einheit für die Zeitangabe ist Minuten. Der Standardwert ist 60 Minuten.
BIND durchsucht die Netzwerkschnittstellen regelmäßig nach neuen oder nicht vorhandenen Schnittstellen. Wenn dieser Wert auf 0
gesetzt ist, wird dieser Vorgang nicht durchgeführt und BIND überwacht nur die beim Start erkannten Schnittstellen. Anderenfalls wird das Zeitintervall in Minuten angegeben. Der Standardwert ist 60 Minuten.
no
verhindert, dass anderen Namenserver informiert werden, wenn Änderungen an den Zonendaten vorgenommen werden oder wenn der Namenserver neu gestartet wird.
Eine Liste der verfügbaren Optionen finden Sie auf der man-Seite man 5 named.conf.
Der Umfang, die Art und Weise und der Ort der Protokollierung kann in BIND extensiv konfiguriert werden. Normalerweise sollten die Standardeinstellungen ausreichen. In Beispiel 23.3, „Eintrag zur Deaktivierung der Protokollierung“ sehen Sie die einfachste Form eines solchen Eintrags, bei dem jegliche Protokollierung unterdrückt wird.
Beispiel 23.3. Eintrag zur Deaktivierung der Protokollierung
logging { category default { null; }; };
Beispiel 23.4. Zoneneintrag für "example.com"
zone "example.com" in { type master; file "example.com.zone"; notify no; };
Geben Sie nach zone
den Namen der zu verwaltenden Domäne (example.com
) an, gefolgt von in
und einem Block relevanter Optionen in geschweiften Klammern, wie in Beispiel 23.4, „Zoneneintrag für "example.com"“ gezeigt. Um eine Slave-Zone zu definieren, ändern Sie den Wert von type
in slave
und geben Sie einen Namenserver an, der diese Zone als master
verwaltet (dieser kann wiederum ein Slave eines anderen Masters sein), wie in Beispiel 23.5, „Zoneneintrag für "example.net"“ gezeigt.
Beispiel 23.5. Zoneneintrag für "example.net"
zone "example.net" in { type slave; file "slave/example.net.zone"; masters { 10.0.0.1; }; };
Zonenoptionen:
Durch die Angabe master
wird BIND darüber informiert, dass der lokale Namenserver für die Zone zuständig ist. Dies setzt voraus, dass eine Zonendatei im richtigen Format erstellt wurde.
Diese Zone wird von einem anderen Namenserver übertragen. Sie muss zusammen mit masters
verwendet werden.
Die Zone .
vom Typ hint
wird verwendet, um den root-Namenserver festzulegen. Diese Zonendefinition kann unverändert beibehalten werden.
example.com.zone
oder Datei "slave/example.net.zone";
In diesem Eintrag wird die Datei angegeben, in der sich die Zonendaten für die Domäne befinden. Diese Datei ist für einen Slave nicht erforderlich, da die betreffenden Daten von einem anderen Namenserver abgerufen werden. Um zwischen Master- und Slave-Dateien zu unterscheiden, verwenden Sie das Verzeichnis slave
für die Slave-Dateien.
server-ip-adresse
; };Dieser Eintrag ist nur für Slave-Zonen erforderlich. Er gibt an, von welchem Namenserver die Zonendatei übertragen werden soll.
Mit dieser Option wird der externe Schreibzugriff gesteuert, der Clients das Anlegen von DNS-Einträgen gestattet. Aus Sicherheitsgründen wird davon abgeraten, den Clients Schreibzugriff zu gewähren. Ohne diesen Eintrag sind überhaupt keine Zonenaktualisierungen zulässig. Der oben stehende Eintrag hat dieselbe Wirkung, da ! *
solche Aktivitäten effektiv unterbindet.
Zwei Arten von Zonendateien sind erforderlich. Eine Art ordnet IP-Adressen Hostnamen zu, die andere stellt Hostnamen für IP-Adressen bereit.
Verwenden des Punkts in Zonendateien | |
---|---|
Im Verzeichnis |
Der erste zu betrachtende Fall ist die Zonendatei example.com.zone
, die für die Domäne example.com
zuständig ist (siehe Beispiel 23.6, „Die Datei /var/lib/named/example.com.zone“).
Beispiel 23.6. Die Datei /var/lib/named/example.com.zone
1. $TTL 2D 2. example.com. IN SOA dns root.example.com. ( 3. 2003072441 ; serial 4. 1D ; refresh 5. 2H ; retry 6. 1W ; expiry 7. 2D ) ; minimum 8. 9. IN NS dns 10. IN MX 10 mail 11. 12. gate IN A 192.168.5.1 13. IN A 10.0.0.1 14. dns IN A 192.168.1.116 15. mail IN A 192.168.3.108 16. jupiter IN A 192.168.2.100 17. venus IN A 192.168.2.101 18. saturn IN A 192.168.2.102 19. mercury IN A 192.168.2.103 20. ntp IN CNAME dns 21. dns6 IN A6 0 2002:c0a8:174::
$TTL
legt die Standardlebensdauer fest, die für alle Einträge in dieser Datei gelten soll. In diesem Beispiel sind die Einträge zwei Tage lang gültig (2 D
).
Hier beginnt der SOA (Start of Authority)-Steuereintrag:
Der Name der zu verwaltenden Datei ist example.com
an der ersten Stelle. Dieser Eintrag endet mit "."
, da anderenfalls die Zone ein zweites Mal angefügt würde. Alternativ kann hier @
eingegeben werden. In diesem Fall wird die Zone aus dem entsprechenden Eintrag in /etc/named.conf
extrahiert.
Nach IN SOA
befindet sich der Name des Namenservers, der als Master für diese Zone fungiert. Der Name wird von dns
zu dns.example.com
erweitert, da er nicht mit "."
endet.
Es folgt die E-Mail-Adresse der für diesen Namenserver zuständigen Person. Da das Zeichen @
bereits eine besondere Bedeutung hat, wird hier stattdessen "."
eingegeben. Für root@example.com
muss der Eintrag wie folgt lauten: root.example.com.
. Im Verzeichnis "."
muss angehängt werden, damit die Zone nicht hinzugefügt wird.
Durch (
werden alle Zeilen bis einschließlich )
in den SOA-Eintrag aufgenommen.
Die Seriennummer (serial
) ist eine beliebige Nummer, die sich bei jeder Änderung der Datei erhöht. Sie wird benötigt, um die sekundären Namenserver (Slave-Server) über Änderungen zu informieren. Hierfür hat sich eine 10-stellige Nummer aus Datum und Ausführungsnummer in der Form JJJJMMMTTNN als übliches Format etabliert.
Die Aktualisierungsrate (refresh rate
) gibt das Zeitintervall an, in dem die sekundären Namenserver die Seriennummer (serial
) der Zone überprüfen. In diesem Fall beträgt dieses Intervall einen Tag.
Die Wiederholungsrate (retry
) gibt das Zeitintervall an, nach dem ein sekundärer Namenserver bei einem Fehler erneut versucht, Kontakt zum primären Server herzustellen. In diesem Fall sind dies zwei Stunden.
Die Ablaufzeit (expiry
) gibt den Zeitraum an, nach dem ein sekundärer Server die im Cache gespeicherten Daten verwirft, wenn er keinen erneuten Kontakt zum primären Server herstellen konnte. Hier eine Woche.
Die letzte Angabe im SOA-Eintrag gibt die negative Cache-Lebensdauer (negative caching TTL
) an. Sie legt fest, wie lange Ergebnisse nicht aufgelöster DNS-Abfragen anderer Server im Cache gespeichert werden können.
IN NS
gibt den für diese Domäne verantwortlichen Namenserver an. dns
wird zu dns.example.com
erweitert, da der Eintrag nicht mit einem "."
endet. Es können mehrere solcher Zeilen vorhanden sein - eine für den primären und eine für die einzelnen sekundären Namenserver. Wenn notify
in /etc/named.conf
nicht auf no
gesetzt ist, werden alle hier aufgeführten Namenserver über die Änderungen an den Zonendaten informiert.
Der MX-Eintrag gibt den Mailserver an, der E-Mails für die Domäne example.com
annimmt, verarbeitet und weiterleitet. In diesem Beispiel ist dies der Host mail.example.com
. Die Zahl vor dem Hostnamen ist der Präferenzwert. Wenn mehrere MX-Einträge vorhanden sind, wird zunächst der Mailserver mit dem kleinsten Wert verwendet. Wenn die Mailzustellung an diesen Server nicht möglich ist, wird ein Versuch mit dem nächsthöheren Wert unternommen.
Dies sind die eigentlichen Adresseinträge, in denen den Hostnamen eine oder mehrere IP-Adressen zugewiesen werden. Die Namen werden hier ohne "."
aufgelistet, da sie ihre Domäne nicht enthalten. Daher wird ihnen allen example.com
hinzugefügt. Dem Host gate
werden zwei IP-Adressen zugewiesen, da er zwei Netzwerkkarten aufweist. Bei jeder traditionellen Hostadresse (IPv4) wird der Eintrag mit A
gekennzeichnet. Wenn es sich um eine IPv6-Adresse handelt, wird der Eintrag mit AAAA
gekennzeichnet.
IPv6-Syntax | |
---|---|
Die Syntax des IPv6-Eintrags unterscheidet sich geringfügig von der Syntax von IPv4. Aufgrund der Möglichkeit einer Fragmentierung müssen Informationen zu fehlenden Bits vor der Adresse angegeben werden. Um nur die IPv6-Adresse mit dem erforderlichen Wert "0" auszufüllen, fügen Sie an der korrekten Stelle in der Adresse zwei Doppelpunkte hinzu. pluto AAAA 2345:00C1:CA11::1234:5678:9ABC:DEF0 pluto AAAA 2345:00D2:DA11::1234:5678:9ABC:DEF0 |
Der Alias ntp
kann zur Adressierung von dns
(CNAME
steht für canonical name (kanonischer Name)) verwendet werden.
Die Pseudodomäne in-addr.arpa
wird für Reverse-Lookups zur Auflösung von IP-Adressen in Hostnamen verwendet. Sie wird in umgekehrter Notation an den Netzwerk-Teil der Adresse angehängt. 192.168
wird also in 168.192.in-addr.arpa
aufgelöst. Weitere Informationen hierzu finden Sie unter Beispiel 23.7, „Reverse-Lookup“.
Beispiel 23.7. Reverse-Lookup
1. $TTL 2D 2. 168.192.in-addr.arpa. IN SOA dns.example.com. root.example.com. ( 3. 2003072441 ; serial 4. 1D ; refresh 5. 2H ; retry 6. 1W ; expiry 7. 2D ) ; minimum 8. 9. IN NS dns.example.com. 10. 11. 1.5 IN PTR gate.example.com. 12. 100.3 IN PTR www.example.com. 13. 253.2 IN PTR cups.example.com.
$TTL definiert die Standard-TTL, die für alle Einträge hier gilt.
Die Konfigurationsdatei muss Reverse-Lookup für das Netzwerk 192.168
aktivieren. Wenn die Zone 168.192.in-addr.arpa
heißt, sollte sie nicht zu den Hostnamen hinzugefügt werden. Daher werden alle Hostnamen in ihrer vollständigen Form eingegeben, d. h. mit der Domäne und einem abschließenden Punkt ("."
). Die restlichen Einträge entsprechen den im vorherigen Beispiel (example.com
) beschriebenen Einträgen.
Sehen Sie sich hierzu das Beispiel für example.com
an.
Diese Zeile gibt wieder den für diese Zone verantwortlichen Namenserver an. Diesmal wird der Name allerdings in vollständiger Form mit Domäne und "."
am Ende eingegeben.
Dies sind die Zeigereinträge, die auf die IP-Adressen auf den entsprechenden Hosts verweisen. Am Anfang der Zeile wird nur der letzte Teil der IP-Adresse eingegeben, ohne "."
am Ende. Wenn daran die Zone angehängt wird (ohne .in-addr.arpa
), ergibt sich die vollständige IP-Adresse in umgekehrter Reihenfolge.
Normalerweise sollten Zonentransfers zwischen verschiedenen Versionen von BIND problemlos möglich sein.
Der Ausdruck dynamische Aktualisierung bezieht sich auf Vorgänge, bei denen Einträge in den Zonendateien eines Masterservers hinzugefügt, geändert oder gelöscht werden. Dieser Mechanismus wird in RFC 2136 beschrieben. Die dynamische Aktualisierung wird individuell für jeden Zoneneintrag durch Hinzufügen einer optionalen allow-update
- bzw. update-policy
-Regel konfiguriert. Dynamisch zu aktualisierende Zonen sollten nicht von Hand bearbeitet werden.
Die zu aktualisierenden Einträge werden mit dem Befehl nsupdate an den Server übermittelt. Die genaue Syntax dieses Befehls können Sie der man-Seite für nsupdate (man8 nsupdate
) entnehmen. Aus Sicherheitsgründen sollten solche Aktualisierungen mithilfe von TSIG-Schlüsseln durchgeführt werden, wie in Abschnitt 23.8, „Sichere Transaktionen“ beschrieben.
Sichere Transaktionen können mithilfe von Transaktionssignaturen (TSIGs) durchgeführt werden, die auf gemeinsam genutzten geheimen Schlüsseln (TSIG-Schlüssel) beruhen. In diesem Abschnitt wird die Erstellung und Verwendung solcher Schlüssel beschrieben.
Sichere Transaktionen werden für die Kommunikation zwischen verschiedenen Servern und für die dynamische Aktualisierung von Zonendaten benötigt. Die Zugriffssteuerung von Schlüsseln abhängig zu machen, ist wesentlich sicherer, als sich lediglich auf IP-Adressen zu verlassen.
Erstellen Sie mit dem folgenden Befehl einen TSIG-Schlüssel (genauere Informationen finden Sie unter mandnssec-keygen
):
dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
Dadurch werden zwei Schlüssel mit ungefähr folgenden Namen erstellt:
Khost1-host2.+157+34265.private Khost1-host2.+157+34265.key
Der Schlüssel selbst (eine Zeichenkette, wie beispielsweise ejIkuCyyGJwwuN3xAteKgg==
) ist in beiden Dateien enthalten. Um ihn für Transaktionen zu verwenden, muss die zweite Datei (Khost1-host2.+157+34265.key
) auf den entfernten Host übertragen werden, möglichst auf eine sichere Weise (z. B. über SCP). Auf dem entfernten Server muss der Schlüssel in der Datei /etc/named.conf
enthalten sein, damit eine sichere Kommunikation zwischen host1
und host2
möglich ist:
key host1-host2 { algorithm hmac-md5; secret "ejIkuCyyGJwwuN3xAteKgg=="; };
Dateiberechtigungen von /etc/named.conf | |
---|---|
Vergewissern Sie sich, dass die Berechtigungen von include "filename"
Ersetzen Sie |
Damit Server host1
den Schlüssel für host2
verwenden kann (in diesem Beispiel mit der Adresse 10.1.2.3
), muss die Datei /etc/named.conf
des Servers folgende Regel enthalten:
server 10.1.2.3 { keys { host1-host2. ;}; };
Analoge Einträge müssen in die Konfigurationsdateien von host2
aufgenommen werden.
Fügen Sie TSIG-Schlüssel für alle ACLs (Access Control Lists, Zugriffssteuerungslisten, nicht zu verwechseln mit Dateisystem-ACLs) hinzu, die für IP-Adressen und -Adressbereiche definiert sind, um Transaktionssicherheit zu gewährleisten. Der entsprechende Eintrag könnte wie folgt aussehen:
allow-update { key host1-host2. ;};
Dieses Thema wird eingehender im Referenzhandbuch für BIND-Administratoren (unter update-policy
) erörtert.
DNSSEC (DNS-Sicherheit) wird in RFC 2535 beschrieben. Die für DNSSEC verfügbaren Werkzeuge werden im BIND-Handbuch erörtert.
Einer als sicher betrachteten Zone müssen ein oder mehrere Zonenschlüssel zugeordnet sein. Diese werden mit dnssec-keygen erstellt, genau wie die Host-Schlüssel. Zurzeit wird der DSA-Verschlüsselungsalgorithmus zum Erstellen dieser Schlüssel verwendet. Die generierten öffentlichen Schlüssel sollten mithilfe einer $INCLUDE
-Regel in die entsprechende Zonendatei aufgenommen werden.
Mit dem Befehl dnssec-makekeyset werden alle erstellten Schlüssel zu einem Satz zusammengefasst, der dann auf sichere Weise in die übergeordnete Zone übertragen werden muss. In der übergeordneten Zone wird der Satz mit dnssec-signkey signiert. Die durch diesen Befehl erstellten Dateien werden anschließend verwendet, um die Zonen mit dnssec-signzone zu signieren, wodurch wiederum die Dateien erstellt werden, die für die einzelnen Zonen in /etc/named.conf
aufgenommen werden sollen.
Weitere Informationen können Sie dem Referenzhandbuch für BIND-Administratoren aus Paket bind-doc
entnehmen, das unter /usr/share/doc/packages/bind/
installiert ist. Außerdem könnten Sie die RFCs zurate ziehen, auf die im Handbuch verwiesen wird, sowie die in BIND enthaltenen man-Seiten. /usr/share/doc/packages/bind/README.SuSE
enthält aktuelle Informationen zu BIND in openSUSE.