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 18:07. ] – [Zonen-Dateien für lokale Adressen] django | centos:bind_c7 [31.12.2017 14:52. ] (aktuell) – [0.0.10.zone.db (intra)] django | ||
---|---|---|---|
Zeile 1641: | Zeile 1641: | ||
* **INTRA** : Domäne **intra.nausch.org** - IP-Netz: **10.0.10.0/ | * **INTRA** : Domäne **intra.nausch.org** - IP-Netz: **10.0.10.0/ | ||
- | Die Clientanfragen aus den beiden Netzen sollen dabei mit Hilfe unterschiedlicher **views** voneinander getrennt werden, so dass ein Client aus dem Intranet für die gleiche Anfrage wie von einen anderen Client aus der DMZ **__unterschiedliche__** Antworten bekommen soll. | + | Die Clientanfragen aus den beiden Netzen sollen dabei mit Hilfe unterschiedlicher **[[https:// |
- | * **view** - **INTRANET** | + | * **view** - **INTRA** |
* **view** - **DMZ** | * **view** - **DMZ** | ||
- | * **view** - **Rest** | ||
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. | 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 / | ||
+ | # mkdir / | ||
Anschließend statten wir unser neues Konfigurationsverzeichnis noch mit den nötigen Datei, Benutzer- und Gruppenrechten aus. | Anschließend statten wir unser neues Konfigurationsverzeichnis noch mit den nötigen Datei, Benutzer- und Gruppenrechten aus. | ||
# chown named:named / | # chown named:named / | ||
+ | # chown named:named / | ||
# chmod 770 / | # chmod 770 / | ||
+ | # chmod 770 / | ||
Nun können wir für jede Zone in unserem neuen Verzeichnis // | Nun können wir für jede Zone in unserem neuen Verzeichnis // | ||
Zeile 1658: | Zeile 1660: | ||
* Zonen-Datei für die **Forward**-Auflösung - // | * Zonen-Datei für die **Forward**-Auflösung - // | ||
* Zonen-Datei für die **Reverse**-Auflösung - // | * Zonen-Datei für die **Reverse**-Auflösung - // | ||
- | * **Zone DMZ** | + | * **Zone DMZ** (für die Anfragen aus der DMZ) |
* Zonen-Datei für die **Forward**-Auflösung - // | * Zonen-Datei für die **Forward**-Auflösung - // | ||
- | * Zonen-Datei für die **Reverse**-Auflösung - // | + | * Zonen-Datei für die **Reverse**-Auflösung - //**[[centos: |
+ | * **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 === | === intra.nausch.org.zone.db === | ||
Zeile 1666: | Zeile 1671: | ||
# vim / | # vim / | ||
- | <file bind / | + | <file bind / |
- | $TTL 86400 | + | $TTL 86400 ; 1 day |
- | @ IN SOA | + | intra.nausch.org |
- | 2017122901 | + | 2017122901 ; serial |
- | | + | |
- | | + | |
- | | + | |
- | 1D ) ; minimum | + | 86400 |
- | ; | + | ) |
- | | + | NS ns1.intra.nausch.org. |
- | | + | |
- | ; | + | $ORIGIN intra.nausch.org. |
- | ns1 IN | + | ns1 A |
- | pml010051 | + | |
- | ; | + | vml010027 |
- | proton | + | pml010051 |
+ | |||
+ | $ORIGIN intra.nausch.org. | ||
+ | test CNAME ns1 | ||
+ | |||
+ | fwi | ||
+ | gateway CNAME vml010027 | ||
+ | proton | ||
</ | </ | ||
Zur Prüfung unserer gerade angelegten Zonendatei nutzen wir folgenden Befehl: | Zur Prüfung unserer gerade angelegten Zonendatei nutzen wir folgenden Befehl: | ||
- | # | + | # named-checkzone intra.nausch.org / |
zone intra.nausch.org/ | zone intra.nausch.org/ | ||
Zeile 1691: | Zeile 1703: | ||
=== 10.0.10.zone.db === | === 10.0.10.zone.db === | ||
- | Nun legen wir für die Zone **INTRANET** für das IP-Netz **10.0.10.0/ | + | Nun legen wir für die Reverseauflösung der Zone **INTRANET** für das IP-Netz **10.0.10.0/ |
- | # vim / | + | # vim / |
- | <file bind / | + | <file bind / |
- | @ | + | @ |
- | 2017122901 | + | 2017122901 ; serial |
- | | + | |
- | | + | |
- | | + | |
- | 1D ) ; minimum | + | 86400 |
+ | ) | ||
+ | NS ns1.intra.nausch.org. | ||
+ | MX 10 mx1.nausch.org. | ||
- | NS ns1.intra.nausch.org. | + | 27 PTR ns1.intra.nausch.org. |
- | MX 10 mx1.nausch.org. | + | 51 PTR pml010051.intra.nausch.org.</ |
- | + | ||
- | 27 PTR | + | |
- | 51 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: | 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 | zone 10.0.10/IN: loaded serial 2017122901 | ||
Zeile 1718: | Zeile 1729: | ||
# vim / | # vim / | ||
- | <file bind / | + | <file bind / |
- | $TTL 86400 | + | $TTL 86400 ; 1 day |
- | @ IN SOA | + | dmz.nausch.org |
- | 2017122901 | + | 2017122901 ; serial |
- | | + | |
- | | + | |
- | | + | |
- | 1D ) ; minimum | + | 86400 |
+ | ) | ||
+ | NS ns1.dmz.nausch.org. | ||
+ | MX 10 mx1.nausch.org. | ||
+ | $ORIGIN dmz.nausch.org. | ||
+ | ns1 A 10.0.0.27 | ||
- | IN NS ns1.dmz.nausch.org. | + | vml000017 |
- | | + | vml000027 A |
- | ns1 | + | $ORIGIN dmz.nausch.org. |
- | vml000017 | + | test CNAME ns1 |
- | + | fwe CNAME | |
- | fwe IN | + | fwi CNAME vml000027 |
- | fwi IN | + | |
</ | </ | ||
Auch hier führen wir den Syntax- und Plausibilitäts-Check durch. | Auch hier führen wir den Syntax- und Plausibilitäts-Check durch. | ||
- | # | + | # named-checkzone dmz.nausch.org / |
zone dmz.nausch.org/ | zone dmz.nausch.org/ | ||
Zeile 1744: | Zeile 1759: | ||
=== 0.0.10.zone.db === | === 0.0.10.zone.db === | ||
- | Was nun noch fehlt ist das Zonenfile für die Zonendatei für die Reverseauflösung der Zone **DMZ**. | + | Was nun noch fehlt ist das Zonenfile für die Zonendatei für die Reverseauflösung der Zone **DMZ**. |
- | # vim / | + | # vim / |
- | <file bind / | + | <file bind / |
- | @ | + | @ |
- | 2017122901 | + | 2017122901 ; serial |
- | | + | |
- | | + | |
- | | + | |
- | 1D ) ; minimum | + | 86400 |
+ | ) | ||
+ | NS ns1.dmz.nausch.org. | ||
+ | MX 10 mx1.nausch.org. | ||
- | NS ns1.dmz.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 / | ||
- | 17 PTR | + | <file bind / |
- | 27 | + | $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: | 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 /var/named/intra/0.0.10.in-addr.arpa.zone.db |
zone 0.0.10/IN: loaded serial 2017122901 | zone 0.0.10/IN: loaded serial 2017122901 | ||
OK | 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 ===== | ||