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
lpi2:bind [2014/02/14 18:21]
ingo_wichmann [Konfigurationsdatei]
lpi2:bind [2020/12/21 11:52] (aktuell)
ingo_wichmann
Zeile 2: Zeile 2:
  
 ===== Vorbereiten ===== ===== Vorbereiten =====
-=== CentOS ​===+=== systemd-resolvd === 
 +"​systemd-resolved is not intended to be used on DNS servers. If you’re running a DNS server, you’ll need to disable systemd-resolved before setting up BIND or Unbound instead"​ 
 +=== 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 empfehlen wir 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 84:
  
 === 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 127:
 <​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 150:
  
 === 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 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+
- +
-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 191:
  
 === 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 216:
 </​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 275:
  
 ''​~/​.bashrc''​ : ''​~/​.bashrc''​ :
-<file>+<code bash>
 function zvi { function zvi {
   cd /​var/​cache/​bind/​master   cd /​var/​cache/​bind/​master
Zeile 320: Zeile 284:
   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 300:
 === 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 347:
         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 365:
  
 ==== 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 379:
   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 394:
 }; };
 </​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 402:
 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
lpi2/bind.1392402069.txt.gz · Zuletzt geändert: 2014/02/14 18:21 von ingo_wichmann