Die Datei named.conf ist eine Ansammlung von Direktiven, die in verschachtelte, geschweifte Klammern platzierte { }-Optionen verwenden. Administratoren m�ssen vorsichtig beim Bearbeiten der Datei named.conf sein und jegliche syntaktische Fehler vermeiden, da auch die kleinsten Fehler den Service named vom Starten abhalten k�nnen.
Warnung
Bearbeiten Sie die Datei /etc/named.conf oder andere Dateien aus dem /var/named/-Verzeichnis nicht manuell, wenn Sie mit dem Domain Name Service Configuration Tool arbeiten. Alle manuell vorgenommenen �nderungen an dieser Dateien werden �berschrieben, wenn Domain Name Service Configuration Tool das n�chste Mal verwendet wird.
Eine typische named.conf-Datei ist �hnlich wie folgt gegliedert:
In diesem Statement ersetzen Sie <acl-name> mit dem Namen der Access-Control-Liste (Liste der Zugriffskontrolle) und ersetzen Sie <match-element> mit einer List von IP-Adressen, wobei Adressen durch ein Semikolon getrennt werden. Meistens wird eine individuelle IP-Adresse oder IP-Netzwerk-Notation (wie 10.0.1.0/24) benutzt, um die IP Adresse im acl Statement zu identifizieren.
Die folgenden Access-Control-Listen sind bereits als Schl�sselw�rter definiert, um die Konfiguration zu vereinfachen:
any — Vergleicht jede IP-Adresse.
localhost — Vergleicht jede IP-Adresse, die auf dem lokalen System verwendet wird.
localnets — Vergleicht jede IP-Adresse auf allen Netzwerken, mit denen das lokale System verbunden ist.
none — Vergleicht keine IP-Adressen.
Wenn mit anderen Statements (wie dem options Statement) verwendet, k�nnen acl Statements sehr hilfreich dabei sein, BIND Nameserver vor unbefugtem Zugriff zu sch�tzen.
Das folgende Beispiel gibt zwei Access-Control-Listen an und benutzt ein options Statement, um anzugeben, wie diese vom Nameserver behandelt werden sollen:
Dieses Beispiel enth�lt zwei Access-Control-Listen, black-hats und red-hats. Hosts in der black-hats Liste ist der Zugriff zum Nameserver verboten, w�hrend Hosts in der red-hats Liste normaler Zugriff gew�hrt ist.
12.2.1.2. include Statement
Das include Statement erlaubt Dateien in named.conf einzuschliessen. Auf diese Weise k�nnen empfindliche Konfigurationsdaten (wie Keys) in einer separaten Datei mit eingeschr�nkten Rechten gehalten werden.
Ein include Statement hat die folgende Form:
include "<file-name>"
In diesem Statement, ersetzen Sie <file-name> mit dem absoluten Pfad zu einer Datei.
12.2.1.3. options Statement
Das options Statement legt Konfigurationsoptionen des globalen Servers fest und setzt Defaults f�r andere Statements. Es kann verwendet werden, um den Ort des named Arbeitsverzeichnisses anzugeben, den Typ der erlaubten Queries, uvm.
Das options Statement hat die folgende Form:
options {
<option>;
[<option>; ...]
};
In diesem Statement, ersetzen Sie die <option> Direktiven mit einer g�ltigen Option.
Die folgenden sind h�ufig benutzte Optionen:
allow-query — Legt fest, welche Hosts diesen Nameserver abfragen d�rfen. Standardm��ig sind alle Hosts dazu berechtigt. Mit Hilfe einer Access-Controll-Liste, einer Sammlung von IP-Adressen oder Netzwerken kann festgelegt werden, dass nur bestimmte Hosts den Nameserver abfragen d�rfen.
allow-recursion — �hnelt der Option allow-query, mit der Ausnahme, dass sie sich auf rekursive Abfragen bezieht. Standardm��ig k�nnen alle Hosts rekursive Abfragen auf dem Nameserver durchf�hren.
blackhole — Gibt an, welchen Hosts es nicht erlaubt ist Anfragen an den Server zu stellen.
directory — �ndert das named-Arbeitsverzeichnis, so dass es sich von dem Default, /var/named/, unterscheidet.
forward — Kontrolliert das Verhalten beim Weiterleiten einer forwarders Direktive.
Die folgenden Optionen werden angenommen:
first — Gibt an, dass Nameserver, die in der forwarders-Option festgelegt sind, zuerst nach Informationen abgefragt werden. Sollten anschlie�end keine Informationen vorhanden sein, versucht named die Aufl�sung selbst durchzuf�hren.
only — Gibt an, dass named nicht versucht, die Aufl�sung selbst durchzuf�hren, wenn die forwarders Direktive nicht erfolgreich war.
forwarders — Legt eine Liste von Nameservern fest, bei denen Abfragen f�r Aufl�sungen weitergeleitet werden.
listen-on — Legt die Netzwerk-Schnittstelle fest, die named verwendet, um Anfragen zu pr�fen. Standardm��ig werden alle Schnittstellen verwendet.
Auf diese Weise, sollte der DNS Server auch der Gateway sein, kann BIND dazu konfiguriert werden nur Anfragen, welche von einem dieser Netzwerke gestellt wurden, zu beantworten.
Eine listen-on Direktive kann folgenderma�en aussehen:
options {
listen-on { 10.0.1.1; };
};
Auf diese Art und Weise werden nur Anfragen von der Netzwerk-Schnittstelle akzeptiert, die das private Netzwerk (10.0.1.1) verwendet.
notify — Wird verwendet, wenn die Zone als Slave type festgelegt ist. Die masters- Option teilt dem named eines Slaves die IP-Adressen mit, von denen ma�gebliche Informationen �ber die Zone angefragt werden:
yes — Informiert Slave-Server.
no — Informiert Slave-Server nicht.
explicit — Informiert Slave-Server nur dann, wenn diese in einer also-notify List innerhalb des Zonen Statement angegeben sind.
pid-file — Legt die Lokalit�t f�r die Prozess-ID-Datei fest, die von named erstellt wurde.
root-delegation-only — Schaltet die Erzwingung von Delegation-Properties in Top-Level-Dom�nen ein (TLDs) sowie auch Rootzonen mit einer optionellen Exclude-Liste. Delegation ist der Vorgang des Unterteilens einer einzelnen Zone in mehrere Subzonen. Um eine delegierte Zone zu erstellen, werden sogenannte NS recordsbenutzt. NameServer-Records (Delegation-Records) geben die ma�geblichen (autoritativen) Nameserver f�r eine bestimmte Zone bekannt.
Das folgende root-delegation-only-Beispiel legt eine Exclude-Liste von TLDs fest, deren 'undelegated' Reaktion erwartet und angenommen wird.
statistics-file — Erlaubt das Festlegen eines alternativen Ortes in welcher die Statistik-Dateien abgelegt werden. Standardm��ig werden named-Statistiken in /var/named/named.stats gespeichert.
Es gibt noch zahlreiche andere Optionen, bei denen einige voneinander abh�ngig sind, um fehlerfrei zu funktionieren. Weitere Informationen hierzu finden Sie im BIND 9 Administrator Reference Manual, in Abschnitt 12.7.1, und in den man-Seiten zu bind.conf.
12.2.1.4. zone Statement
Ein zone Statement legt die Eigenschaften einer Zone, wie den Ort der Konfigurationsdatei und Zonen-spezifische Optionen fest. Dieses Statement kann dazu benutzt werden, um globale options Statements zu �berschreiben.
Ein zone Statement hat die folgende Form:
zone <zone-name><zone-class> {
<zone-options>;
[<zone-options>; ...]
};
In diesem Statement <zone-name> ist der Name der Zone, <zone-class> ist die optionale Klasse der Zone, und <zone-options> ist eine List von Optionen, welche die Eigenschaften der Zone bestimmen.
Das <zone-name>-Attribut f�r das Zonen Statement ist besonders wichtig, da es den Standardwert f�r die $ORIGIN-Anweisung festlegt, welche den Zonen-Dateien im Verzeichnis /var/named/ entspricht. Der Daemon named h�ngt den Namen der Zone an jeden Nicht-FQDN an, welcher in der Zonen-Datei aufgelistet ist.
Wenn, zum Beispiel, ein zone Statement den Namespace f�r example.com angibt, verwende example.com als <zone-name>, damit es an Hostnamen in der example.com Zonen-Datei angeh�ngt wird.
F�r mehr Information zu Zonen-Dateien, siehe Abschnitt 12.3.
Die am h�ufigsten verwendeten Optionen von zone Statement sind die Folgenden:
allow-query — Legt fest, welche Clients Informationen �ber diese Zone anfordern d�rfen. Standardm��ig sind alle Anfragen zul�ssig.
allow-transfer — Bestimmt die Slave-Server, die den Transfer der Informationen �ber die Zonen anfordern d�rfen. Standardm��ig sind alle Transfer-Anfragen zul�ssig.
allow-update — Bestimmt die Hosts, die Informationen in ihrer Zone dynamisch aktualisieren d�rfen. Standardm��ig sind Anfragen f�r dynamische Updates nicht zul�ssig.
Wenn Sie zulassen, dass Hosts Informationen �ber ihre Zonen aktualisieren, sollten Sie unbedingt sicherstellen, dass Sie diese Option nur aktivieren, wenn der Host absolut sicher ist. Es ist besser, die Updates der Zonen-Records manuell von einem Administrator durchf�hren zu lassen und den named-Service, soweit m�glich, neu zu laden.
file — Bestimmt den Namen der Datei im named-Arbeitsverzeichnis, die die Zone-Konfigurationsdateien enth�lt. Standardm��ig ist dies /var/named/.
masters — Gibt die IP-Adressen an, von denen authorit�re Zoneninformationen erfragt werden k�nnen. Wird nur verwendet, wenn die Zone als typeslave spezifiziert ist.
notify — Gibt an, ob named den Slave-Servern mitteilt, da� eine Zone ge�ndert wurde. Diese Direktive kennt die folgenden Optionen:
yes — Informiert Slave-Server.
no — Informiert Slave-Server nicht.
explicit — Informiert Slave-Server nur dann, wenn diese in einer also-notify List innerhalb des Zonen Statement angegeben sind.
type — Gibt den Typ der Zone an.
Folgend ist eine Liste der g�ltigen Optionen:
delegation-only — Erzwingt den Delegation-Status von Infrastruktur-Zonen wie z.B. COM, NET oder ORG. Jegliche Antwort ohne explizite oder implizite Delegation wird als NXDOMAIN behandelt. Diese Option ist nur in TLDs oder root-Zone-Dateien anwendbar, die in rekursiven oder Caching Implementationen verwendet werden.
forward — Weist den Nameserver an, alle Anfragen zu Informationen �ber die Zone an andere Nameserver weiterzuleiten.
hint — Ein spezieller Zonen-Typ, mit dem auf die Root-Nameserver verwiesen wird, die verwendet werden, um Abfragen zu l�sen, wenn eine Zone ansonsten unbekannt ist. Sie brauchen neben der Standarddatei /etc/named.conf keine zus�tzliche Hinweisdatei zu konfigurieren.
master — Bezeichnet den Nameserver, der f�r diese Zone ma�geblich ist. Wenn die Konfigurationsdateien f�r diese Zone auf Ihrem System sind, sollte der master-Typ eingestellt werden.
slave — Bezeichnet den Nameserver, der f�r diese Zone der Slave-Server ist und der named mitteilt, die Zonen-Konfigurationsdateien f�r diese Zone von der IP-Adresse des Master-Nameservers abzufragen.
zone-statistics — Weist named an, die Statistiken �ber diese Zone aufzubewahren und diese entweder in der Standard-Datei (/var/named/named.stats) oder an einer Stelle abzulegen, die mit der statistics-file-Option im server-Statement, sofern vorhanden, daf�r eingerichtet wurde. Sehen Sie Abschnitt 12.2.2 f�r weitere Information �ber das server-Statement.
12.2.1.5. Beispiele von zone-Statements
Die meisten �nderungen in der /etc/named.conf-Datei eines Master- oder Slave-Nameservers betreffen das Hinzuf�gen, Modifizieren oder L�schen von zone-Direktiven. Obwohl diese zone-Anweisungen mehrere Optionen enthalten k�nnen, werden von den meisten Nameservern nur wenige verwendet. Die folgenden zone-Direktiven sind sehr allgemeine Beispiele, die auf Master-Slave-Nameservern verwendet werden k�nnen.
Nachfolgend finden Sie ein Beispiel f�r eine zone- Anweisung f�r den prim�ren Nameserver, der example.com (192.168.0.1) hostet:
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
Diese zone-Direktive benennt die Zone example.com, stellt als Typ master ein und weist den named-Service an, die Datei /var/named/example.com.zone zu lesen und weist named an, Aktualisierungen durch andere Hosts nicht zuzulassen.
Eine zone-Anweisung eines Slave-Servers f�r example.com unterscheidet sich etwas vom vorherigen Beispiel. F�r einen Slave-Server wird der Typ auf slave festgelegt. An die Stelle der Zeile allow-update tritt eine Anweisung, die named die IP-Adresse des Master-Servers mitteilt.
Nachfolgend finden Sie ein Beispiel f�r eine zone-Anweisung f�r die example.com Zone:
zone "example.com" {
type slave;
file "example.com.zone";
masters { 192.168.0.1; };
};
Diese zone-Anweisung weist named auf dem Slave-Server an, bei dem Master-Server mit der IP 192.168.0.1 nach Informationen f�r die Zone example.com zu suchen. Die Informationen, die der Slave-Server vom Master-Server erh�lt, werden in der Datei /var/named/example.com.zone gespeichert.
12.2.2. Andere Statement-Typen
Die Folgende ist eine Liste von weniger verwendeten Statement-Typen welche in named.conf verf�gbar sind:
controls — Konfiguriert verschiedene Sicherheitsbedingungen, die f�r den Befehl rndc zum Verwalten des named-Services n�tig sind.
Unter Abschnitt 12.4.1 sehen Sie, wie die controls-Anweisung aussehen sollte, einschlie�lich der verf�gbaren Optionen.
key "<key-name>" — Legt f�r einen bestimmten Schl�ssel einen Namen fest. Schl�ssel werden verwendet, um verschiedene Aktionen zu authentifizieren, wie z.B. sichere Updates oder die Verwendung des rndc-Befehls. Mit key werden zwei Optionen verwendet:
algorithm <algorithm-name> — Der verwendete Algorithmus-Typ, z.B. dsa oder hmac-md5.
secret "<key-value>" — Der verschl�sselte Schl�ssel.
Unter Abschnitt 12.4.2 finden Sie die Anweisungen zum Schreiben eines key-Statement.
logging — Erlaubt die Verwendung mehrerer Arten von Protokollen mit der Bezeichnung channels. Wird die Option channel in der logging-Anweisung verwendet, wird ein benutzerdefiniertes Protokoll mit eigenem Dateinamen (file), Gr��enbeschr�nkung (size), Version (version), und dessen Wichtigkeit (severity) erstellt. Nachdem ein benutzerdefinierter Channel festgelegt wurde, wird dieser mit der Option category klassifiziert und beginnt mit dem Protokollieren, wenn named neu gestartet wird.
Standardm��ig protokolliert named normale Mitteilungen im syslog-Daemon, der diese in /var/log/messages platziert. Dies geschieht, weil sich verschiedene standardm��ige Channel mit unterschiedlicher Wichtigkeit im BIND befinden. Zum Beispiel verarbeitet ein Channel die Protokoll-Mitteilungen (default_syslog) und ein anderer speziell Debugging-Mitteilungen (default_debug). Die standardm��ige Kategorie default, verwendet zum normalen Protokollieren, ohne spezielle Konfigurationen, integrierte Channel.
Den Protokollierungsprozess individuell anzupassen kann sehr aufwendig sein und �bersteigt den Umfang dieses Kapitels. Informationen �ber die Erstellung von benutzerdefinierten BIND-Protokollen finden Sie im BIND 9 Administrator Reference Manual in Abschnitt 12.7.1.
server — Definiert bestimmte Optionen, die Auswirkungen darauf haben, wie named sich gegen�ber Remote-Name-Servern verhalten soll, insbesondere im Hinblick auf Benachrichtigungen und Zone-�bertragungen.
Die Option transfer-format kontrolliert, ob mit jeder Mitteilung ein Resource-Record (one-answer) oder mehrere Ressource-Records mit jeder Meldung gesendet werden (many-answers). Da many-answers leistungsf�higer ist, wird es nur von neueren Name-Servern angenommen.
trusted-keys — Enth�lt verschiedene �ffentliche Schl�ssel f�r die Verwendung mit Secure DNS (DNSSEC). Unter Abschnitt 12.5.3 finden Sie eine Einf�hrung in die BIND-Sicherheit.
view "<view-name>" — Erstellt spezielle Ansichten, die bestimmten Informationen entsprechen, die von dem Host abh�ngig sind, der den Name-Server kontaktiert. Dadurch erhalten einige Hosts Informationen, die sich vollkommen von denen unterscheiden, die andere Hosts erhalten. Eine andere M�glichkeit ist, nur bestimmte Zonen f�r bestimmte sichere Hosts zug�nglich zu machen, w�hrend nicht sichere Hosts nur Abfragen f�r andere Zonen erstellen k�nnen.
Es k�nnen auch mehrere Ansichten verwendet werden, solange ihre Namen eindeutig sind. Die match-clients-Option legt die IP-Adressen fest, die f�r eine bestimmte Ansicht verwendet werden. Alle option-Direktiven k�nnen in einer Ansicht verwendet werden. Sie �berschreiben dabei die allgemeinen, bereits f�r named konfigurierten Optionen. Die meisten view-Direktiven enthalten mehrere zone-Anweisungen, die f�r die match-clients-Liste gelten. Es ist wichtig, in welcher Reihenfolge die view-Anweisungen aufgelistet sind, da die erste view-Direktive, die mit einer bestimmten IP-Adresse des Client �bereinstimmt, verwendet wird.
Unter Abschnitt 12.5.2 finden Sie weitere Informationen zum view-Statement.
12.2.3. Kommentar-Tags
Die Folgende ist eine Liste g�ltiger, in named.conf verwendeter, Kommentar-Tags:
// — Wenn an den Anfang der Zeile gestellt, wird diese Zeile von named ignoriert.
# — Wenn an den Anfang der Zeile gestellt, wird diese Zeile von named ignoriert.
/* und */ — Hierin eingeschlossener Text wird von named ignoriert.