Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| centos:bind_c7 [29.12.2017 10:56. ] – [rndc-confgen] django | centos:bind_c7 [31.12.2017 14:52. ] (aktuell) – [0.0.10.zone.db (intra)] django | ||
|---|---|---|---|
| Zeile 255: | Zeile 255: | ||
| ===== Grund-/ | ===== Grund-/ | ||
| - | ==== Name Server Control Utility | + | ==== Name Server Control Utility ==== |
| Zur administrativen Interaktion und Steuerung mit unserem DNS-Server nutzen wir das Name Server Control Utility **rndc** aus dem RPM **bind**. Die Optionen dieses User Interface finden am einfachsten in der zugehörigen manpage. | Zur administrativen Interaktion und Steuerung mit unserem DNS-Server nutzen wir das Name Server Control Utility **rndc** aus dem RPM **bind**. Die Optionen dieses User Interface finden am einfachsten in der zugehörigen manpage. | ||
| < | < | ||
| Zeile 1637: | Zeile 1637: | ||
| ==== Zonen-Dateien für lokale Adressen ==== | ==== Zonen-Dateien für lokale Adressen ==== | ||
| + | In nun folgenden Konfigurationsbeispiel wollen wir einen primären DNS-Server aufsetzen, der folgende zwei Zonen verwalten soll: | ||
| + | * **DMZ** : Domäne **dmz.nausch.org** - IP-Netz: **10.0.0.0/ | ||
| + | * **INTRA** : Domäne **intra.nausch.org** - IP-Netz: **10.0.10.0/ | ||
| + | Die Clientanfragen aus den beiden Netzen sollen dabei mit Hilfe unterschiedlicher **[[https:// | ||
| + | * **view** - **INTRA** | ||
| + | * **view** - **DMZ** | ||
| + | Bevor wir nun die notwendigen Zonen-Dateien für unseren DNS-Server anlegen werden, legen wir uns zunächst eine eigenen Verzeichnis an, in dem wir später dann die Zonen-Dateien ablegen werden. | ||
| + | # mkdir / | ||
| + | # mkdir / | ||
| + | Anschließend statten wir unser neues Konfigurationsverzeichnis noch mit den nötigen Datei, Benutzer- und Gruppenrechten aus. | ||
| + | # chown named:named / | ||
| + | # chown named:named / | ||
| + | # chmod 770 / | ||
| + | # chmod 770 / | ||
| + | |||
| + | Nun können wir für jede Zone in unserem neuen Verzeichnis // | ||
| + | * **Zone INTRANET** | ||
| + | * Zonen-Datei für die **Forward**-Auflösung - // | ||
| + | * Zonen-Datei für die **Reverse**-Auflösung - // | ||
| + | * **Zone DMZ** (für die Anfragen aus der DMZ) | ||
| + | * Zonen-Datei für die **Forward**-Auflösung - // | ||
| + | * Zonen-Datei für die **Reverse**-Auflösung - // | ||
| + | * **Zone DMZ** (für die Anfragen aus dem Intranet) | ||
| + | * Zonen-Datei für die **Forward**-Auflösung - // | ||
| + | * Zonen-Datei für die **Reverse**-Auflösung - // | ||
| + | |||
| + | === intra.nausch.org.zone.db === | ||
| + | Zunächst legen wir uns also die Zonen-Datei für die Forward-Auflösung der Zone **INTRANET** an. | ||
| + | # vim / | ||
| + | |||
| + | <file bind / | ||
| + | $TTL 86400 ; 1 day | ||
| + | intra.nausch.org | ||
| + | 2017122901 ; serial | ||
| + | 28800 ; refresh (8 hours) | ||
| + | 7200 ; retry (2 hours) | ||
| + | 604800 | ||
| + | 86400 ; minimum (1 day) | ||
| + | ) | ||
| + | NS ns1.intra.nausch.org. | ||
| + | MX 10 mx1.nausch.org. | ||
| + | $ORIGIN intra.nausch.org. | ||
| + | ns1 | ||
| + | |||
| + | vml010027 | ||
| + | pml010051 | ||
| + | |||
| + | $ORIGIN intra.nausch.org. | ||
| + | test CNAME ns1 | ||
| + | |||
| + | fwi | ||
| + | gateway CNAME vml010027 | ||
| + | proton | ||
| + | </ | ||
| + | |||
| + | Zur Prüfung unserer gerade angelegten Zonendatei nutzen wir folgenden Befehl: | ||
| + | # named-checkzone intra.nausch.org / | ||
| + | |||
| + | zone intra.nausch.org/ | ||
| + | OK | ||
| + | |||
| + | === 10.0.10.zone.db === | ||
| + | Nun legen wir für die Reverseauflösung der Zone **INTRANET** für das IP-Netz **10.0.10.0/ | ||
| + | # vim / | ||
| + | <file bind / | ||
| + | @ IN SOA ns1.intra.nausch.org. hostmaster.nausch.org. ( | ||
| + | 2017122901 ; serial | ||
| + | 28800 ; refresh (8 hours) | ||
| + | 7200 ; retry (2 hours) | ||
| + | 604800 | ||
| + | 86400 ; minimum (1 day) | ||
| + | ) | ||
| + | NS ns1.intra.nausch.org. | ||
| + | MX 10 mx1.nausch.org. | ||
| + | |||
| + | 27 PTR ns1.intra.nausch.org. | ||
| + | 51 PTR pml010051.intra.nausch.org.</ | ||
| + | |||
| + | Wie schon zuvor bei der Zonen-Datei für die Forward-Auflösung checken wir nun auch hier die gerade angelegte Datei auf Tippfehler mit folgenden Befehl: | ||
| + | # named-checkzone 10.0.10 / | ||
| + | |||
| + | zone 10.0.10/IN: loaded serial 2017122901 | ||
| + | OK | ||
| + | |||
| + | === dmz.nausch.org.zone.db === | ||
| + | Nachdem wir die Konfiguration der Zone Intranet abgeschlossen haben, werden wir nun als nächstes die Zone **DMZ** konfigurieren. Als erstes werden wir auch hier das Zonefile für die Forwardauflösung anlegen. | ||
| + | # vim / | ||
| + | |||
| + | <file bind / | ||
| + | $TTL 86400 ; 1 day | ||
| + | dmz.nausch.org | ||
| + | 2017122901 ; serial | ||
| + | 28800 ; refresh (8 hours) | ||
| + | 7200 ; retry (2 hours) | ||
| + | 604800 | ||
| + | 86400 ; minimum (1 day) | ||
| + | ) | ||
| + | NS ns1.dmz.nausch.org. | ||
| + | MX 10 mx1.nausch.org. | ||
| + | $ORIGIN dmz.nausch.org. | ||
| + | ns1 A 10.0.0.27 | ||
| + | |||
| + | vml000017 | ||
| + | vml000027 A | ||
| + | |||
| + | $ORIGIN dmz.nausch.org. | ||
| + | test CNAME ns1 | ||
| + | fwe CNAME | ||
| + | fwi CNAME | ||
| + | </ | ||
| + | |||
| + | Auch hier führen wir den Syntax- und Plausibilitäts-Check durch. | ||
| + | # named-checkzone dmz.nausch.org / | ||
| + | |||
| + | zone dmz.nausch.org/ | ||
| + | OK | ||
| + | |||
| + | === 0.0.10.zone.db === | ||
| + | Was nun noch fehlt ist das Zonenfile für die Zonendatei für die Reverseauflösung der Zone **DMZ**. ~~codedoc: | ||
| + | # vim / | ||
| + | <file bind / | ||
| + | @ IN SOA ns1.dmz.nausch.org. hostmaster.nausch.org. ( | ||
| + | 2017122901 ; serial | ||
| + | 28800 ; refresh (8 hours) | ||
| + | 7200 ; retry (2 hours) | ||
| + | 604800 | ||
| + | 86400 ; minimum (1 day) | ||
| + | ) | ||
| + | NS ns1.dmz.nausch.org. | ||
| + | MX 10 mx1.nausch.org. | ||
| + | |||
| + | 17 PTR | ||
| + | 27 PTR | ||
| + | </ | ||
| + | |||
| + | Wie schon zuvor bei der Zonen-Datei für die Forward-Auflösung checken wir nun auch hier die gerade angelegte Datei auf Tippfehler mit folgenden Befehl: | ||
| + | # named-checkzone 0.0.10 / | ||
| + | |||
| + | zone 0.0.10/IN: loaded serial 2017122901 | ||
| + | OK | ||
| + | |||
| + | === dmz.nausch.org.zone.db (intra) === | ||
| + | Nachdem wir die Konfiguration der Zone Intranet abgeschlossen haben, werden wir nun als nächstes die Zone **DMZ** konfigurieren. Als erstes werden wir auch hier das Zonefile für die Forwardauflösung anlegen. | ||
| + | # vim / | ||
| + | |||
| + | <file bind / | ||
| + | $TTL 86400 ; 1 day | ||
| + | dmz.nausch.org | ||
| + | 2017122901 ; serial | ||
| + | 28800 ; refresh (8 hours) | ||
| + | 7200 ; retry (2 hours) | ||
| + | 604800 | ||
| + | 86400 ; minimum (1 day) | ||
| + | ) | ||
| + | NS ns1.dmz.nausch.org. | ||
| + | MX 10 mx1.nausch.org. | ||
| + | $ORIGIN dmz.nausch.org. | ||
| + | ns1 A 10.0.0.27 | ||
| + | </ | ||
| + | |||
| + | Auch hier führen wir den Syntax- und Plausibilitäts-Check durch. | ||
| + | # named-checkzone dmz.nausch.org / | ||
| + | |||
| + | zone dmz.nausch.org/ | ||
| + | OK | ||
| + | |||
| + | === 0.0.10.zone.db (intra) === | ||
| + | Was nun noch fehlt ist das Zonenfile für die Zonendatei für die Reverseauflösung der Zone **DMZ**. | ||
| + | # vim / | ||
| + | <file bind / | ||
| + | @ IN SOA ns1.dmz.nausch.org. hostmaster.nausch.org. ( | ||
| + | 2017122901 ; serial | ||
| + | 28800 ; refresh (8 hours) | ||
| + | 7200 ; retry (2 hours) | ||
| + | 604800 | ||
| + | 86400 ; minimum (1 day) | ||
| + | ) | ||
| + | NS ns1.dmz.nausch.org. | ||
| + | MX 10 mx1.nausch.org. | ||
| + | |||
| + | 27 PTR | ||
| + | </ | ||
| + | |||
| + | Wie schon zuvor bei der Zonen-Datei für die Forward-Auflösung checken wir nun auch hier die gerade angelegte Datei auf Tippfehler mit folgenden Befehl: | ||
| + | # named-checkzone 0.0.10 / | ||
| + | |||
| + | zone 0.0.10/IN: loaded serial 2017122901 | ||
| + | OK | ||
| + | |||
| + | |||
| + | ==== named.conf ==== | ||
| + | Für unser Konfigurationsbeispiel legen wir uns nun eine eigene individuelle Konfigurationsdatei an, die all unsere Anwendungsfälle abdeckt. Die enizelnen Optionen sind in der Konfigurationsdatei // | ||
| + | # vim / | ||
| + | |||
| + | <file ini / | ||
| + | |||
| + | // ISC Bind Konfigurationsdatei auf Basis der Beispiels-Konfigurationsdatei | ||
| + | // / | ||
| + | // Konfig-Beschreibung: | ||
| + | |||
| + | /* ********** Variablendefinition für die unterschiedlichen ACLs ********** */ | ||
| + | acl dmz { | ||
| + | 10.0.0.0/ | ||
| + | }; | ||
| + | |||
| + | acl intra { | ||
| + | 10.0.10.0/ | ||
| + | }; | ||
| + | |||
| + | acl primary | ||
| + | 10.0.0.27/ | ||
| + | }; | ||
| + | |||
| + | acl interfaces { | ||
| + | 10.0.0.27/ | ||
| + | 10.0.10.27/ | ||
| + | }; | ||
| + | |||
| + | |||
| + | /* *********************** rndc Schlüsseldefinition *********************** */ | ||
| + | include "/ | ||
| + | |||
| + | |||
| + | /* *********************** rndc Control-Definition ************************ */ | ||
| + | controls { | ||
| + | inet 127.0.0.1 port 953 | ||
| + | allow { 127.0.0.1; } keys { " | ||
| + | }; | ||
| + | |||
| + | |||
| + | /* ***************** Definition der allgemeinen Optionen ****************** */ | ||
| + | options { | ||
| + | // Arbeitsverzeichnis des Servers | ||
| + | directory "/ | ||
| + | |||
| + | // Das Verzeichnis, | ||
| + | // DNSSEC-Schlüsseldateien befinden sollen. | ||
| + | key-directory "/ | ||
| + | |||
| + | // Das Verzeichnis, | ||
| + | // die verwalteten DNSSEC-Schlüssel verfolgen. | ||
| + | managed-keys-directory "/ | ||
| + | |||
| + | // Pfadname der Datei, um die eingebauten vertrauenswürdigen Schlüssel | ||
| + | // von named zu überschreiben. Pfad zum ISC DLV Schlüssel. | ||
| + | bindkeys-file "/ | ||
| + | |||
| + | // Der Pfadname der Datei, in die ein TSIG-Sitzungsschlüssel geschrieben | ||
| + | // werden soll, der mit named für die Verwendung durch nsupdate -l | ||
| + | // erzeugt wurde. | ||
| + | session-keyfile "/ | ||
| + | |||
| + | // Der Pfadname der Datei, auf die der Server die security roots | ||
| + | // schreibt, wenn er hierzu angewiesen wird. | ||
| + | secroots-file "/ | ||
| + | |||
| + | // Der Pfadname der Datei, auf die der Server die Datenbank übergibt, | ||
| + | // wenn er angewiesen wird. | ||
| + | dump-file "/ | ||
| + | |||
| + | // Der Pfadname der Datei, an die der Server Statistiken anhängt, | ||
| + | // wenn er Server hierzu angewiesen wird. | ||
| + | statistics-file "/ | ||
| + | |||
| + | // Der Pfadname der Datei, in die der Server beim Beenden die | ||
| + | // Speicherverbrauchsstatistik schreibt. | ||
| + | memstatistics-file "/ | ||
| + | |||
| + | // Pfadname der Datei, in die der Server Abfragen, die gerade | ||
| + | // wiederkehren, | ||
| + | recursing-file "/ | ||
| + | |||
| + | // Pfadname der Datei, in die der Server seine Prozess-ID schreibt. | ||
| + | pid-file "/ | ||
| + | |||
| + | // Wird folgender Parameter auf " | ||
| + | // bei der Generierung von Antworten nur dann Datensätze zur authority | ||
| + | // und additional data sections hinzu, wenn sie benötigt werden. | ||
| + | minimal-responses no; | ||
| + | |||
| + | /* Wird folgender Parameter auf " | ||
| + | | ||
| + | | ||
| + | ist und der Server die Antwort noch nicht kennt, gibt er eine | ||
| + | | ||
| + | Die Default-Einstellung ist " | ||
| + | | ||
| + | dass Clients Daten aus dem Server-Cache beziehen; es verhindert nur, | ||
| + | dass neue Daten als Folge von Client-Abfragen zwischengespeichert werden. | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | von groß angelegten DNS-Amplifikations-Angriffen werden könnte. | ||
| + | Die Implementierung von BCP38 in Ihrem Netzwerk würde diese | ||
| + | | ||
| + | */ | ||
| + | recursion yes; | ||
| + | |||
| + | // DNSsec-Support aktivieren | ||
| + | dnssec-enable yes; | ||
| + | |||
| + | /* DNSsec-Validierung aktivieren und mit den Root-Zertificaten abgleichen. | ||
| + | " | ||
| + | | ||
| + | | ||
| + | | ||
| + | " | ||
| + | | ||
| + | | ||
| + | " | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | dnssec-validation auto; | ||
| + | |||
| + | /* Wird diese option gesetzt, stellt dnssec-lookaside dem validator eine | ||
| + | | ||
| + | Zone (top of a zone) zu validieren. Wenn dnssec-lookaside auf auto | ||
| + | | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | dnssec-lookaside auto; | ||
| + | |||
| + | // Diese Option wird verwendet, um den Zeichensatz und die Syntax | ||
| + | // bestimmter Domänennamen in Masterdateien und/oder DNS-Antworten, | ||
| + | // die vom Netzwerk empfangen werden, einzuschränken. | ||
| + | check-names master warn; | ||
| + | |||
| + | // Gibt an, welche Hosts diesen Server, einen Slave, zusätzlich zu den | ||
| + | // Zonen-Mastern über Zonenänderungen benachrichtigen dürfen. | ||
| + | allow-notify { 127.0.0.1; }; | ||
| + | |||
| + | // Definiert, welche Hosts gewöhnliche DNS-Fragen stellen dürfen. | ||
| + | allow-query { ::1; 127.0.0.1; dmz; intra; }; | ||
| + | |||
| + | // Legt fest, welche Hosts rekursive Abfragen über diesen Server | ||
| + | // durchführen dürfen. | ||
| + | allow-recursion { ::1; 127.0.0.1; dmz; intra; }; | ||
| + | |||
| + | // Gibt an, welche Hosts Zonentransfers vom Server empfangen dürfen. | ||
| + | allow-transfer { 127.0.0.1; primary; }; | ||
| + | |||
| + | // Gibt eine Liste von Adressen an, von denen der Server keine Anfragen | ||
| + | // annimmt oder die zur Lösung einer Anfrage verwendet werden. Anfragen | ||
| + | // von diesen Adressen werden nicht beantwortet. | ||
| + | blackhole { none; }; | ||
| + | |||
| + | // Die Schnittstellen und Ports, von denen der Server Anfragen | ||
| + | // beantwortet, | ||
| + | listen-on port 53 { 127.0.0.1; interfaces; }; | ||
| + | listen-on-v6 port 53 { ::1; }; | ||
| + | |||
| + | // Sofern der Server die Antwort auf eine Frage nicht kennt, fragt er | ||
| + | // andere Nameserver ab. query-source gibt die Adresse und den Port an, | ||
| + | // die für solche Abfragen verwendet werden. | ||
| + | query-source address * port *; | ||
| + | |||
| + | // Maximale Größe eines Core Dump | ||
| + | coresize default; | ||
| + | |||
| + | // Maximale Größe an RAM, die der Server verbrauchen darf. | ||
| + | datasize default; | ||
| + | |||
| + | // Maximale Anzahl von geöffneten Dateien. | ||
| + | files unlimited; | ||
| + | |||
| + | // Maximale Menge an Stack-Speicher, | ||
| + | stacksize default; | ||
| + | |||
| + | // Maximale Größe jeder Journaldatei fest. | ||
| + | // (default ist unbegrenzt, was auch 2 Gigabyte bedeutet) | ||
| + | max-journal-size unlimited; | ||
| + | |||
| + | // Maximale Anzahl gleichzeitiger rekursiver Suchvorgänge, | ||
| + | // für Clients durchführt. Der Standardwert ist 1000. | ||
| + | recursive-clients 1000; | ||
| + | |||
| + | // Maximale Anzahl gleichzeitiger TCP Verbindungen die der Server von | ||
| + | // Clients akzeptiert. Der Standardwert ist 100. | ||
| + | tcp-clients 100; | ||
| + | |||
| + | /* Maximale Menge an Arbeitsspeicher (in Bytes), die für den Server-Cache | ||
| + | | ||
| + | | ||
| + | | ||
| + | von 32-Bit-Ganzzahlen ohne Vorzeichen (0xffffffffffff), | ||
| + | den gleichen Effekt wie 0 auf Maschinen, die mehr als 32 Bit unterstützen. | ||
| + | Alle positiven Werte kleiner als 2MB werden ignoriert und auf 2MB gesetzt. | ||
| + | Bei einem Server mit mehreren Views gilt die Begrenzung separat für | ||
| + | den Cache der einzelnen Views. Der Standardwert ist 0. | ||
| + | */ | ||
| + | max-cache-size 0; | ||
| + | |||
| + | /* List Queue Depth: Die Standardeinstellung und das Minimum ist 10. Sofern | ||
| + | der Kernel Accept-Filter-Verbindungen unterstützt, | ||
| + | | ||
| + | wird. Werte ungleich 0 unter 10 werden stillschweigend erhöht. | ||
| + | ein Wert von 0 kann gesetzt werden und definiert auf den meisten | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | tcp-listen-queue 10; | ||
| + | |||
| + | /* Der Server scannt die Liste der Netzwerkschnittstellen in regelmäßigen | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | dem Abhören von Abfragen auf neu entdeckte Interfaces (vorausgesetzt, | ||
| + | sind durch die Listen-On-Konfiguration erlaubt) und hört auf, auf nicht | ||
| + | mehr vorhandene Interfaces zu hören. | ||
| + | */ | ||
| + | interface-interval 0; | ||
| + | |||
| + | /* Definiert die Zeit in Sekunden, in denen eine lahme Serveranzeige | ||
| + | | ||
| + | | ||
| + | ist 1800 (30 Minuten). | ||
| + | */ | ||
| + | lame-ttl 600; | ||
| + | |||
| + | /* Um den Netzwerkverkehr zu reduzieren und die Leistung zu erhöhen, | ||
| + | | ||
| + | um eine maximale Aufbewahrungszeit für diese Antworten im Server in | ||
| + | | ||
| + | 10800 Sekunden (3 Stunden). max-ncache-ttl kann nicht länger als 7 Tage | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | max-ncache-ttl 10800; | ||
| + | |||
| + | /* Legt die maximale Zeit fest, für die der Server gewöhnliche (positive) | ||
| + | | ||
| + | Ein Wert von Null kann dazu führen, dass alle Abfragen SERVFAIL | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | max-cache-ttl 604800; | ||
| + | |||
| + | /* Definiert die Größe des angebotenen EDNS UDP-Puffers (in Bytes), um | ||
| + | die Größe der empfangenen Pakete zu kontrollieren. Gültige Werte sind | ||
| + | 512 bis 4096 (Werte außerhalb dieses Bereichs werden stillschweigend | ||
| + | angepasst). Der Standardwert ist 4096. Der übliche Grund für das | ||
| + | Setzen von edns-udp-size auf einen nicht standardmäßigen Wert ist es, | ||
| + | UDP-Antworten zu erhalten, um durch gebrochene Firewalls zu gehen, die | ||
| + | fragmentierte Pakete blockieren und/oder UDP-Pakete blockieren, die | ||
| + | größer als 512 Bytes sind. named wird auf die Verwendung von 512 Bytes | ||
| + | zurückgreifen, | ||
| + | Anfangswert erhält. 512 Bytes werden nicht angeboten, um Websites zu | ||
| + | ermutigen, ihre Firewalls zu reparieren. Kleine EDNS UDP-Größen führen | ||
| + | zu einer übermäßigen Nutzung von TCP. | ||
| + | */ | ||
| + | edns-udp-size 4096; | ||
| + | |||
| + | /* Legt die maximale EDNS UDP-Nachrichtengröße fest, die in Bytes gesendet | ||
| + | wird. Gültige Werte sind 512 bis 4096 (Werte außerhalb dieses Bereichs | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | vom beworbenen Empfangspuffer (edns-udp-size). Wird dieser Wert auf einen | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | max-udp-size 4096; | ||
| + | |||
| + | /* Definiert den Anfangswert (Minimum) der Anzahl rekursiver gleichzeitiger | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | */ | ||
| + | clients-per-query 10; | ||
| + | |||
| + | /* Definiert den Anfangswert (Maximum) der Anzahl rekursiver gleichzeitiger | ||
| + | | ||
| + | | ||
| + | Named wird versuchen, diesen Wert selbst zu tunen und Änderungen werden | ||
| + | | ||
| + | */ | ||
| + | max-clients-per-query 100; | ||
| + | |||
| + | /* Festlegung der Angaben (Version), die der Server über eine Abfrage des | ||
| + | | ||
| + | | ||
| + | der Version none wird die Verarbeitung der Abfragen deaktiviert. | ||
| + | */ | ||
| + | version "DNS - nausch.org"; | ||
| + | |||
| + | /* Der Hostname, den der Server über eine Abfrage des Namens hostname.bind | ||
| + | mit dem Typ TXT, Klasse CHAOS, melden soll. Dies ist standardmäßig der | ||
| + | | ||
| + | der Funktion gethostname() gefunden wird. Die ID, die der Server beim | ||
| + | | ||
| + | des Namens ID.SERVER vom Typ TXT, Klasse CHAOS, melden soll. Der primäre | ||
| + | Zweck solcher Abfragen ist es, herauszufinden, | ||
| + | | ||
| + | | ||
| + | Die Angabe von server-id hostname; bewirkt, dass named den Hostnamen | ||
| + | | ||
| + | Der Standardwert ist none. | ||
| + | */ | ||
| + | server-id none; | ||
| + | }; | ||
| + | |||
| + | /* ******************* Definition der Logging-Parameter ******************* */ | ||
| + | logging { | ||
| + | |||
| + | // Definition der unterschiedlichen Kanäle | ||
| + | |||
| + | // Standard-Startmeldungen | ||
| + | channel default_debug { | ||
| + | file " | ||
| + | severity dynamic; | ||
| + | print-category yes; | ||
| + | print-severity yes; | ||
| + | print-time yes; | ||
| + | }; | ||
| + | // Genehmigung und Ablehnung von DNS-Anfragen | ||
| + | channel custom_security { | ||
| + | file " | ||
| + | severity info; | ||
| + | print-category yes; | ||
| + | print-severity yes; | ||
| + | print-time yes; | ||
| + | }; | ||
| + | // Lame servers. Dabei handelt es sich um Fehlkonfigurationen bei | ||
| + | // Remote-Servern, | ||
| + | // versuchte, diese Server während der Auflösung abzufragen. | ||
| + | channel custom_lame-servers { | ||
| + | file " | ||
| + | severity info; | ||
| + | print-category yes; | ||
| + | print-severity yes; | ||
| + | print-time yes; | ||
| + | }; | ||
| + | |||
| + | // Definition der beiden Kathegorien security und lame-servers | ||
| + | |||
| + | category security { | ||
| + | custom_security; | ||
| + | default_syslog; | ||
| + | default_debug; | ||
| + | }; | ||
| + | category lame-servers { | ||
| + | custom_lame-servers ; | ||
| + | default_syslog; | ||
| + | default_debug; | ||
| + | }; | ||
| + | }; | ||
| + | |||
| + | /* ******************** Definition der Views and Zones ******************** */ | ||
| + | /* | ||
| + | WICHTIG: | ||
| + | ======== | ||
| + | |||
| + | Die Reihenfolge der View-Anweisungen ist signifikant. | ||
| + | Eine Client-Anfrage wird im Kontext der ersten Ansicht | ||
| + | beantwortet, | ||
| + | */ | ||
| + | view " | ||
| + | // Ist der Anfragende Client aus dem Netz 10.0.10.0/ | ||
| + | match-clients { intra; }; | ||
| + | |||
| + | /* ACHTUNG: Eine Zone kann entweder durch Bearbeiten von Zonendateien | ||
| + | und Neuladen des Servers oder durch dynamisches Update | ||
| + | aktualisiert werden, aber NIEMALS durch beides! | ||
| + | Ist die dynamische Aktualisierung für eine Zone mit der | ||
| + | Option " | ||
| + | Zonendatei manuell bearbeitet werden! Der Server würde | ||
| + | dann nicht mehr versuchen, die Informationen zur Zone | ||
| + | aus der Datei zu laden! | ||
| + | */ | ||
| + | |||
| + | // Zone: root server | ||
| + | zone " | ||
| + | type hint; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: localhost | ||
| + | include "/ | ||
| + | |||
| + | // Zone: intra.nausch.org (forward) | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: intra.nausch.org (reverse) | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: dmz.nausch.org | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: dmz.nausch.org | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | }; | ||
| + | |||
| + | view " | ||
| + | // Ist der Anfragende Client aus dem Netz 10.0.0.0/24 (DMZ)? | ||
| + | match-clients { localhost; dmz; }; | ||
| + | |||
| + | /* ACHTUNG: Eine Zone kann entweder durch Bearbeiten von Zonendateien | ||
| + | und Neuladen des Servers oder durch dynamisches Update | ||
| + | aktualisiert werden, aber NIEMALS durch beides! | ||
| + | Ist die dynamische Aktualisierung für eine Zone mit der | ||
| + | Option " | ||
| + | Zonendatei manuell bearbeitet werden! Der Server würde | ||
| + | dann nicht mehr versuchen, die Informationen zur Zone | ||
| + | aus der Datei zu laden! | ||
| + | */ | ||
| + | |||
| + | // Zone: root server | ||
| + | zone " | ||
| + | type hint; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: localhost | ||
| + | include "/ | ||
| + | |||
| + | // Zone: intra.nausch.org (forward) | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: intra.nausch.org (reverse) | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: dmz.nausch.org | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | |||
| + | // Zone: dmz.nausch.org | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | }; | ||
| + | |||
| + | |||
| + | /* *************************** sonstige includes ************************** */ | ||
| + | include "/ | ||
| + | |||
| + | Bevor wir zur Aktivierung unserer Konfiguration nun den Nameserver einmal durchstarten überprüfen wir noch, ob sich kein Schreibfehler oder sonstiger Konfigurationsfehler eingeschlichen hat. | ||
| + | # named-checkconf | ||
| + | |||
| + | Geben wir beim Aufruf des Befehls **named-checkconf** die Option //**-p**// an, wird uns die (aufgelöste) Konfiguration __ohne__ die ganzen Kommentare ausgegeben. | ||
| + | # named-checkconf -p | ||
| + | |||
| + | < | ||
| + | bindkeys-file "/ | ||
| + | blackhole { | ||
| + | " | ||
| + | }; | ||
| + | coresize default; | ||
| + | datasize default; | ||
| + | session-keyfile "/ | ||
| + | directory "/ | ||
| + | dump-file "/ | ||
| + | files unlimited; | ||
| + | interface-interval 0; | ||
| + | listen-on port 53 { | ||
| + | 127.0.0.1/ | ||
| + | " | ||
| + | }; | ||
| + | listen-on-v6 port 53 { | ||
| + | ::1/128; | ||
| + | }; | ||
| + | managed-keys-directory "/ | ||
| + | memstatistics-file "/ | ||
| + | pid-file "/ | ||
| + | recursing-file "/ | ||
| + | recursive-clients 1000; | ||
| + | secroots-file "/ | ||
| + | server-id none; | ||
| + | stacksize default; | ||
| + | statistics-file "/ | ||
| + | tcp-clients 100; | ||
| + | tcp-listen-queue 10; | ||
| + | version "DNS - nausch.org"; | ||
| + | allow-recursion { | ||
| + | ::1/128; | ||
| + | 127.0.0.1/ | ||
| + | " | ||
| + | " | ||
| + | }; | ||
| + | check-names master warn; | ||
| + | clients-per-query 10; | ||
| + | dnssec-enable yes; | ||
| + | dnssec-lookaside auto; | ||
| + | dnssec-validation auto; | ||
| + | edns-udp-size 4096; | ||
| + | lame-ttl 600; | ||
| + | max-cache-size 0; | ||
| + | max-cache-ttl 604800; | ||
| + | max-clients-per-query 100; | ||
| + | max-ncache-ttl 10800; | ||
| + | max-udp-size 4096; | ||
| + | minimal-responses no; | ||
| + | query-source address 0.0.0.0 port 0; | ||
| + | recursion yes; | ||
| + | allow-notify { | ||
| + | 127.0.0.1/ | ||
| + | }; | ||
| + | allow-query { | ||
| + | ::1/128; | ||
| + | 127.0.0.1/ | ||
| + | " | ||
| + | " | ||
| + | }; | ||
| + | allow-transfer { | ||
| + | 127.0.0.1/ | ||
| + | " | ||
| + | }; | ||
| + | key-directory "/ | ||
| + | max-journal-size unlimited; | ||
| + | }; | ||
| + | controls { | ||
| + | inet 127.0.0.1 port 953 allow { | ||
| + | 127.0.0.1/ | ||
| + | } keys { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | acl " | ||
| + | 10.0.0.0/ | ||
| + | }; | ||
| + | acl " | ||
| + | 10.0.10.0/ | ||
| + | }; | ||
| + | acl " | ||
| + | 10.0.0.27/ | ||
| + | }; | ||
| + | acl " | ||
| + | 10.0.0.27/ | ||
| + | 10.0.10.27/ | ||
| + | }; | ||
| + | logging { | ||
| + | channel " | ||
| + | file " | ||
| + | severity dynamic; | ||
| + | print-time yes; | ||
| + | print-severity yes; | ||
| + | print-category yes; | ||
| + | }; | ||
| + | channel " | ||
| + | file " | ||
| + | severity info; | ||
| + | print-time yes; | ||
| + | print-severity yes; | ||
| + | print-category yes; | ||
| + | }; | ||
| + | channel " | ||
| + | file " | ||
| + | severity info; | ||
| + | print-time yes; | ||
| + | print-severity yes; | ||
| + | print-category yes; | ||
| + | }; | ||
| + | category " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }; | ||
| + | category " | ||
| + | " | ||
| + | " | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | view " | ||
| + | match-clients { | ||
| + | " | ||
| + | }; | ||
| + | zone " | ||
| + | type hint; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | }; | ||
| + | view " | ||
| + | match-clients { | ||
| + | " | ||
| + | " | ||
| + | }; | ||
| + | zone " | ||
| + | type hint; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | allow-update { | ||
| + | " | ||
| + | }; | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | zone " | ||
| + | type master; | ||
| + | file " | ||
| + | }; | ||
| + | }; | ||
| + | key " | ||
| + | algorithm " | ||
| + | secret " | ||
| + | }; | ||
| + | managed-keys { | ||
| + | " | ||
| + | " | ||
| + | };</ | ||
| + | |||
| + | ==== Neustart des Daemon ==== | ||
| + | Da mit der zuvor erstellten Konfiguration unseres Servers alles in Ordnung war, spricht nun nichts mehr dagegen, zur Aktivierung unserer Konfiguration den Daemon einmal durchzustarten. | ||
| + | # systemctl restart named-chroot.service | ||
| + | |||
| + | Den Status des laufenden Daemon fragen wir wie gewohnt wie folgt ab. | ||
| + | # systemctl status named-chroot.service | ||
| + | |||
| + | < | ||
| + | <font style=" | ||
| + | | ||
| + | | ||
| + | Process: 13221 ExecStop=/ | ||
| + | Process: 13324 ExecStart=/ | ||
| + | Process: 13322 ExecStartPre=/ | ||
| + | Main PID: 13327 (named) | ||
| + | | ||
| + | | ||
| + | |||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org named[13327]: | ||
| + | Dec 30 18:38:53 vml000027.dmz.nausch.org systemd[1]: Started Berkeley Internet Name Domain (DNS). | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | Natürlich können wir den Status des DNS-servers auch mit Hilfe des Name Server Control Utility **rndc** abfragen. | ||
| + | # rndc status | ||
| + | < | ||
| + | CPUs found: 1 | ||
| + | worker threads: 1 | ||
| + | UDP listeners per interface: 1 | ||
| + | number of zones: 208 | ||
| + | debug level: 0 | ||
| + | xfers running: 0 | ||
| + | xfers deferred: 0 | ||
| + | soa queries in progress: 0 | ||
| + | query logging is OFF | ||
| + | recursive clients: 0/0/1000 | ||
| + | tcp clients: 0/100 | ||
| + | server is up and running</ | ||
| + | |||
| + | Zur weiteren Überprüfung und/oder ggf. nötigen Fehlersuche ist ein Blick in folgende Logdateien vorzunehmen: | ||
| + | * // | ||
| + | * // | ||
| + | * // | ||
| + | * // | ||
| + | |||
| + | ===== DNSsec ===== | ||
| + | |||
| + | |||
| + | \\ | ||
| FIXME //**... do gehda weida!**// FIXME | FIXME //**... do gehda weida!**// FIXME | ||