Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


lpi2:bind

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste Überarbeitung Beide Seiten, nächste Überarbeitung
lpi2:bind [2014/02/14 14:48]
ingo_wichmann
lpi2:bind [2020/09/09 08:56]
ingo_wichmann [Vorbereiten]
Zeile 2: Zeile 2:
  
 ===== Vorbereiten ===== ===== Vorbereiten =====
-=== CentOS ​===+=== CentOS ​===
 Paket ''​caching-nameserver''​ deinstallieren Paket ''​caching-nameserver''​ deinstallieren
  
-Paket ''​system-config-bind'' ​installieren +=== DNSSEC temporär abschalten === 
-Mit  +''​/​etc/​named.conf'' ​: CentOS (ab 6)
-  system-config-bind +
-Default-Konfigurationsdateien erzeugen+
  
-=== CentOS 6 === +''/​etc/bind/named.conf.options''​ : Debian (ab 7)
-''/​etc/​named.conf''​ :+
 <​file>​ <​file>​
 options { options {
- + 
-        // listen-on port 53 { 127.0.0.1; }; +        // In der Praxis ist DNSSEC eine gute Sache ... aber zum Lernen erst mal aus:
-        // listen-on-v6 port 53 { ::1; }; +
-        // allow-query ​    { localhost; }; +
         dnssec-enable no;         dnssec-enable no;
         dnssec-validation no;         dnssec-validation no;
-        ​#dnssec-lookaside ​auto+        dnssec-lookaside ​no
 +… 
 +}
 </​file>​ </​file>​
 (( mehr zu ''​allow-query''​ weiter unten im Kapitel "Bind absichern"​ und natürlich unter  (( mehr zu ''​allow-query''​ weiter unten im Kapitel "Bind absichern"​ und natürlich unter 
   man named.conf   man named.conf
 )) ))
 +  named-checkconf ​
 +  rndc reconfig
 +
 +== testen ==
 +Eine mit DNSSEC signierte Zone abfragen:
 +
 +Ein validierender Nameserver sollte bei einer signierten Zone liefern:
 +  dig www.posteo.de @1.1.1.1
 +
 +<​file>​
 +flags: … ad
 +</​file>​
 +
 +Unser Nameserver sollte das ad-Flag nicht setzen.
 +
 ====== eigene Zonen in bind verwalten ====== ====== eigene Zonen in bind verwalten ======
 ===== Vorwärts-Zone ===== ===== Vorwärts-Zone =====
 ==== Zonendatei ==== ==== Zonendatei ====
-Unter Debian und CentOS ​muß man ein entsprechendes Verzeichnis ''​master''​ für die Zonendateien noch anlegen ​((oder man legt die Zonendateien direkt in /​var/​cache/​bind bzw. /var/named ab)):+Unter Debian und CentOS ​empfehlen wir ein entsprechendes Verzeichnis ''​master''​ für die Zonendateien noch anzulegen ​((oder man legt die Zonendateien direkt in /​var/​cache/​bind bzw. /var/named ab)):
  
 Debian : Debian :
   mkdir /​var/​cache/​bind/​master   mkdir /​var/​cache/​bind/​master
-CentOS 5 :+CentOS ​(ab 5:
   mkdir /​var/​named/​master   mkdir /​var/​named/​master
  
-''/​var/​named/​master/​linuxhotel.de''​ : ( CentOS 5 )+''/​var/​named/​master/​linuxhotel.de''​ : ( CentOS ​ab 5 )
  
-''/​var/​lib/​named/​master/​linuxhotel.de''​ : ( SuSE 10.0)+''/​var/​lib/​named/​master/​linuxhotel.de''​ : ( SuSE ab 10.0)
  
-''/​var/​cache/​bind/​master/​linuxhotel.de''​ : ( Debian 3.1 )+''/​var/​cache/​bind/​master/​linuxhotel.de''​ : ( Debian ​ab 3.1 )
 <​file>​ <​file>​
-$TTL 2h+$ORIGIN . ; hilft Tippfehler (fehlender . am Ende) zu vermeiden 
 +$TTL 2m   ; time to live: 2 Minuten, default wäre 2 Tage
 linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. ( linuxhotel.de. IN SOA notebook20.linuxhotel.de. root.notebook20.linuxhotel.de. (
         1             ; Seriennummer         1             ; Seriennummer
-        ​3h            ​; refresh +        ​1h20m         ; refresh ​     / 1 Stunde 20 Minuten 
-        ​1h            ​; retry +        ​1d12h         ; retry        / 1,5 Tage 
-        1w            ; expire +        1w            ; expire ​      / 1 Woche 
-        ​1h            ​; negative ttl+        ​60s           ; negative ttl / 60 Sekunden
 ) )
  
Zeile 71: Zeile 82:
  
 === Zonendatei überprüfen === === Zonendatei überprüfen ===
-== CentOS 5 == +== CentOS ​(ab 5== 
-  named-checkzone linuxhotel.de. /​var/​named/​master/​linuxhotel.de+  named-checkzone ​-D linuxhotel.de. /​var/​named/​master/​linuxhotel.de
  
-== SuSE 10.0 == +== SuSE (ab 10.0== 
-  named-checkzone linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de+  named-checkzone ​-D linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de
  
-== Debian 3.1 == +== Debian ​(ab 3.1== 
-  named-checkzone linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de+  named-checkzone ​-D linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de 
 + 
 +==== Konfigurationsdatei ==== 
 +''/​etc/​named.conf''​ : ( SuSE 10.2 ) 
 + 
 +''/​etc/​named.conf''​ : ( CentOS ab 5 ) 
 + 
 +''/​etc/​bind/​named.conf.local''​ : ( Debian ab 5.0 ) 
 +<​file>​ 
 +zone "​linuxhotel.de"​ { 
 +  type master; 
 +  file "​master/​linuxhotel.de";​ 
 +}; 
 +</​file>​ 
 + 
 +Konfigdatei und eingetragene Zonen überprüfen:​ 
 +  named-checkconf -z 
 + 
 +=== bind die Änderung mitteilen === 
 +  rndc reconfig 
 +oder  
 + 
 +openSuSE, centos (ab 7) 
 +  service named reload 
 + 
 +Debian (ab 6) 
 +  service bind9 reload 
 + 
 +==== testen ==== 
 +  host peter.linuxhotel.de 127.0.0.1 
 +  dig peter.linuxhotel.de @127.0.0.1 any
  
 ==== Zonendatei (kurze Schreibweise) ==== ==== Zonendatei (kurze Schreibweise) ====
Zeile 84: Zeile 125:
 <​file>​ <​file>​
 $TTL 2h $TTL 2h
-@ IN SOA notebook20 root.notebook20 ​+@ IN SOA notebook20 root.notebook20 ​3h 1h 1w 1h
-        1             ; Seriennummer +
-        ​3h            ; refresh +
-        ​1h            ; retry +
-        ​1w            ; expire +
-        ​1h            ; negative ttl +
-)+
  
 ; Nameserver: ; Nameserver:
Zeile 113: Zeile 148:
  
 === Zonendatei überprüfen === === Zonendatei überprüfen ===
-== CentOS ​==+== CentOS ==
   named-checkzone -D linuxhotel.de. /​var/​named/​master/​linuxhotel.de   named-checkzone -D linuxhotel.de. /​var/​named/​master/​linuxhotel.de
  
-== SuSE 10.0 ==+== SuSE ==
   named-checkzone -D linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de   named-checkzone -D linuxhotel.de. /​var/​lib/​named/​master/​linuxhotel.de
  
-== Debian ​3.1 ==+== Debian ==
   named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de   named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de
  
-==== Konfigurationsdatei ==== +=== bind die Änderung mitteilen === 
-''/​etc/​named.conf''​ : ( SuSE 10.2 ) +  ​rndc reload ​linuxhotel.de
- +
-''/​etc/​named.conf''​ : ( CentOS ) +
- +
-''/​etc/​bind/​named.conf.local''​ : ( Debian 5.0 ) +
-<​file>​ +
-  zone "​linuxhotel.de"​ { +
-        type master; +
-        file "​master/​linuxhotel.de";​ +
-  }; +
-</​file>​ +
- +
-Konfigdatei und eingetragene Zonen überprüfen:​ +
-  named-checkconf -z +
- +
-bind die Änderung mitteilen+
- +
-SuSE 11.1 : +
-  /​etc/​init.d/​named reload +
- +
-==== testen ==== +
-  ​host peter.linuxhotel.de ​127.0.0.1 +
-  dig peter.linuxhotel.de @127.0.0.1 any+
  
 ===== Rückwärts-Zone ===== ===== Rückwärts-Zone =====
Zeile 176: Zeile 189:
  
 === testen === === testen ===
-  ​named-checkzone linuxhotel.de /​var/​lib/​named/​master/​linuxhotel.de +== CentOS (ab 5) == 
-  named-checkzone 1.168.192.in-addr.arpa. /​var/​lib/​named/​master/​1.168.192.in-addr.arpa+  ​named-checkzone ​-D linuxhotel.de. /​var/​named/​master/​linuxhotel.de 
 +  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​named/​master/​1.168.192.in-addr.arpa 
 + 
 +== SuSE (ab 10.0) == 
 +  named-checkzone -D linuxhotel.de. ​/​var/​lib/​named/​master/​linuxhotel.de 
 +  named-checkzone ​-D 1.168.192.in-addr.arpa. /​var/​lib/​named/​master/​1.168.192.in-addr.arpa 
 + 
 +== Debian (ab 3.1) == 
 +  named-checkzone -D linuxhotel.de. /​var/​cache/​bind/​master/​linuxhotel.de 
 +  named-checkzone -D 1.168.192.in-addr.arpa. /​var/​cache/​bind/​master/​1.168.192.in-addr.arpa
  
 ==== Konfigurationsdatei ==== ==== Konfigurationsdatei ====
Zeile 192: Zeile 214:
 </​file>​ </​file>​
 ===  testen === ===  testen ===
-  named-checkconf+  named-checkconf ​-z
  
-==== testen ==== +=== bind die Änderung mitteilen ​=== 
-SuSE 11.1 : +  ​rndc reconfig 
-  ​/​etc/​init.d/​named reload +==== testen ====  
-  ​+
   host 192.168.1.222 127.0.0.1   host 192.168.1.222 127.0.0.1
   dig -x 192.168.1.222 @127.0.0.1   dig -x 192.168.1.222 @127.0.0.1
- 
-===== Interne Anfragen abfangen ===== 
-Todo: leere Zonendateien für [[http://​linuxhotel.de/​teilnehmerinfo/​seminar-info.html#​Netzwerk|private IP-Adressen]] anlegen 
- 
-=== Debian 5.0 === 
-Bei debian 5.0 gibt es dazu  
-''/​etc/​bind/​zones.rfc1918'',​ 
-''/​etc/​bind/​db.empty''​ 
-und einen Eintrag in ''/​etc/​bind/​named.conf.local'':​ 
-<​file>​ 
-//include "/​etc/​bind/​zones.rfc1918";​ 
-</​file>​ 
- 
-Muß man je nach eigenen verwendeten privaten Netzen anpassen. ​ 
- 
-=== openSuSE 11.4 === 
-( noch nicht fertig ) 
- 
-''/​etc/​named.d/​zones.rfc1918.conf''​ : 
-<​file>​ 
-zone "​10.in-addr.arpa" ​     { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-  
-zone "​16.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​17.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​18.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​19.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​20.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​21.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​22.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​23.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​24.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​25.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​26.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​27.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​28.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​29.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​30.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-zone "​31.172.in-addr.arpa" ​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
- 
-zone "​168.192.in-addr.arpa"​ { type master; file "/​var/​lib/​named/​db.empty";​ }; 
-</​file>​ 
- 
-''/​var/​lib/​named/​db.empty''​ : 
-<​file>​ 
-; BIND reverse data file for empty rfc1918 zone 
-; 
-; DO NOT EDIT THIS FILE - it is used for multiple zones. 
-; Instead, copy it, edit named.conf, and use that copy. 
-; 
-$TTL    86400 
-@       ​IN ​     SOA     ​localhost. root.localhost. ( 
-                              1         ; Serial 
-                         ​604800 ​        ; Refresh 
-                          86400         ; Retry 
-                        2419200 ​        ; Expire 
-                          86400 )       ; Negative Cache TTL 
-; 
-@       ​IN ​     NS      localhost. 
-</​file>​ 
  
 ===== Zonendateien mit nsupdate bearbeiten ===== ===== Zonendateien mit nsupdate bearbeiten =====
Zeile 311: Zeile 273:
  
 ''​~/​.bashrc''​ : ''​~/​.bashrc''​ :
-<file>+<code bash>
 function zvi { function zvi {
   cd /​var/​cache/​bind/​master   cd /​var/​cache/​bind/​master
Zeile 320: Zeile 282:
   cd -   cd -
 } }
-</file>+</code>
  
 ====== bind als slave einrichten ====== ====== bind als slave einrichten ======
 +===== Master konfigurieren =====
 Erst müssen die Slave-Nameserver in der Zonendatei des Masters eingetragen werden: Erst müssen die Slave-Nameserver in der Zonendatei des Masters eingetragen werden:
 <​file>​ <​file>​
Zeile 335: Zeile 298:
 === testen: funktioniert der Master === === testen: funktioniert der Master ===
 == openSuSE 12.3 == == openSuSE 12.3 ==
-  ​cd /​var/​lib/​named/​master +  named-checkzone -i local -D linuxhotel.de ​/​var/​lib/​named/​master/​linuxhotel.de
-  ​named-checkzone -i local -D linuxhotel.de linuxhotel.de+
   rndc reload linuxhotel.de   rndc reload linuxhotel.de
   tail /​var/​log/​messages   tail /​var/​log/​messages
   dig @127.0.0.1 linuxhotel.de NS   dig @127.0.0.1 linuxhotel.de NS
  
 +== debian 8 ==
 +  named-checkzone -i local -D linuxhotel.de /​var/​cache/​bind/​master/​linuxhotel.de
 +  rndc reload linuxhotel.de
 +  journalctl -eu bind9
 +  dig @127.0.0.1 linuxhotel.de NS
  
-==== Slave konfigurieren ====+===== Slave konfigurieren ​=====
 Vorraussetzung:​ Master funktioniert Vorraussetzung:​ Master funktioniert
   dig @<​IP-des-Masters>​ linuxhotel.de AXFR   dig @<​IP-des-Masters>​ linuxhotel.de AXFR
Zeile 378: Zeile 345:
         masters { 192.168.1.220;​ };         masters { 192.168.1.220;​ };
 }; };
 +</​file>​
 +
 +Zonendateien im Binärformat kann man mit:
 +  named-checkzone -D -f raw linuxhotel.de slave/​linuxhotel.de
 +anzeigen. Wenn man die Zonenfiles **lieber im Textformat statt im Binärformat** haben will, kann man in die Zone eintragen:
 +<file txt>
 +zone "​…"​ {
 +  …
 +  masterfile-format text;
 +  …
 </​file>​ </​file>​
  
Zeile 386: Zeile 363:
  
 ==== testen: funktioniert der Slave? ==== ==== testen: funktioniert der Slave? ====
-=== OpenSuSE 12.3 ===+== Debian == 
 +  named-checkconf -z 
 +  rndc reconfig 
 +  journalctl -eu bind9 
 +  ls /​var/​cache/​bind/​slave/​{linuxhotel.de,​1.168.192.in-addr.arpa} 
 +  dig @127.0.0.1 linuxhotel.de AXFR 
 + 
 +== OpenSuSE 12.3 == 
 +  named-checkconf -z
   rcnamed restart   rcnamed restart
   tail /​var/​log/​messages   tail /​var/​log/​messages
Zeile 392: Zeile 377:
   dig @127.0.0.1 linuxhotel.de AXFR   dig @127.0.0.1 linuxhotel.de AXFR
  
-====== Zonentransfer signieren ====== +==== testen: funktionieren ​alle verantwortlichen Nameserver? ​==== 
-Schlüsselpaar erstellen: (( Todoeigentlich sollte das immer mit -n HOST funktionieren. Aber ich hatte Situationen,​ wo ich  +  dig @141.1.1.1 linuxhotel.de ​+nssearch
-  dnssec-keygen -a hmac-md5 -b 128 -n ZONE zonentransfer +
-benutzt habe )) +
-  cd +
-  dnssec-keygen -a hmac-md5 -b 512 -n HOST zonentransfer +
- +
-Dadurch werden zwei Dateien erstellt: +
-  ls Kzonentransfer.+157+* +
- +
-Die darin angegebenen Schlüssel und Verschlüsselungsverfahren müssen in die Konfigurationsdateien von master und slave eingetragen werden. +
- +
-===== master ===== +
-''/​etc/​named.conf''​ : ( CentOS 5, Debian 5.0 ) +
-<​file>​ +
-key "​zonentransfer"​ { +
-        algorithm hmac-md5; +
-        secret "​Ur7+TU8m24L9q24AWgNd4g==";​ +
-}; +
- +
-zone "​linuxhotel.de"​ { +
-        type master; +
-        file "​master/​linuxhotel.de";​ +
-        allow-transfer { key zonentransfer;​ }; +
-}; +
- +
-zone "​1.168.192.in-addr.arpa"​ { +
-        type master; +
-        file "​master/​1.168.192.in-addr.arpa";​ +
-        allow-transfer { key zonentransfer;​ }; +
-}; +
-</​file>​ +
- +
-==== testen ==== +
-Todo: Achtung: unsicher da so der Schlüssen in ''​ps ax''​ Ausgabe und in der history landet. Mit ''​-k''​ wäre sicherer +
-  dig @192.168.53.103 signed03.dnslab.org AXFR -y "​zonentransfer:​Ur7+TU8m24L9q24AWgNd4g=="​ +
- +
-===== slave ===== +
-''/​etc/​named.conf''​ : ( CentOS 5, Debian 5.0 ) +
-<​file>​ +
-key "​zonentransfer"​ { +
-      algorithm hmac-md5; +
-      secret "​Ur7+TU8m24L9q24AWgNd4g==";​ +
-}; +
- +
-server 192.168.1.220 { +
-      keys { zonentransfer;​ }; +
-}; +
- +
-zone "linuxhotel.de" { +
-        type slave; +
-        file "​slaves/​linuxhotel.de";​ +
-        masters { 192.168.1.220;​ }; +
-}; +
- +
-zone "​1.168.192.in-addr.arpa"​ { +
-        type slave; +
-        file "​slaves/​1.168.192.in-addr.arpa";​ +
-        masters { 192.168.1.220;​ }; +
-}; +
-</​file>​+
  
 ====== Subdomains delegieren ====== ====== Subdomains delegieren ======
 ===== Übergeordneter DNS ===== ===== Übergeordneter DNS =====
-''/​etc/​named.conf.local''​ : ( Debian 5.0 )+''/​etc/​named.conf.local''​ : ( Debian ​ab 5.0 )
  
-''/​etc/​named.conf''​ : ( CentOS 5 )+''/​etc/​named.conf''​ : ( CentOS ​ab 5 )
 <​file>​ <​file>​
 zone "​linuxhotel.de"​ IN { zone "​linuxhotel.de"​ IN {
Zeile 466: Zeile 392:
 }; };
 </​file>​ </​file>​
 +
 +:!: Fallstrick: __Unbedingt an **forwarders** denken!__ Und **alle** dnssec Optionen ausschalten :!:
  
 ''/​var/​named/​master''​ : ( CentOS 5 ) ''/​var/​named/​master''​ : ( CentOS 5 )
Zeile 472: Zeile 400:
 ns1.sub05.linuxhotel.de. ​   IN A 192.168.150.110 ns1.sub05.linuxhotel.de. ​   IN A 192.168.150.110
 </​file>​ </​file>​
 +
 +Fallstrick: Seit bind 9.9 werden die empty zones automatisch "​aufgefüllt"​. Dadurch werden aber PTR-RR für nicht eigene Netze nicht mehr geforwarded :!:
 +
 +''/​etc/​named.conf.options''​ : ( Debian 8 )
 +<​file>​
 +disable-empty-zone "​168.192.in-addr.arpa";​
 +</​file>​
 +
 +Das muss auch auf jedem Delegaten konfiguriert werden :!:
  
   named-checkzone -i local -D linuxhotel.de /​var/​named/​master/​linuxhotel.de   named-checkzone -i local -D linuxhotel.de /​var/​named/​master/​linuxhotel.de
Zeile 503: Zeile 440:
 </​code>​ </​code>​
  
-====== Fehlersuche ====== 
-  dnstop 
- 
-===== querylogging ===== 
-todo: nicht getestet 
- 
-Achtung: macht bind sehr langsam 
-<​file>​ 
-logging { 
-  channel query_log { 
-    file "/​var/​named/​query.log"​ versions 10 size 50M; 
-    severity debug; 
-    print-time yes; 
-    enable querylogging 
-  }; 
-}; 
-</​file>​ 
- 
-  rndc querylog 
-  rndc status | grep "query logging"​ 
-  tail /​var/​log/​daemonlog 
-===== Rekursive Anfrage ===== 
-  dig +trace www.wupperrafting.de. 
-[[http://​www.zonecut.net/​dns/​]] 
  
 ====== Dokus & Links ====== ====== Dokus & Links ======
lpi2/bind.txt · Zuletzt geändert: 2023/12/08 15:15 (Externe Bearbeitung)