Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:dns_isc_bind_centos_6_-_master-slave_und_tsig

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:dns_isc_bind_centos_6_-_master-slave_und_tsig [2012/08/06 12:56] – [/etc/named.conf] klaustachtler:dns_isc_bind_centos_6_-_master-slave_und_tsig [2012/12/19 13:15] (aktuell) – [Konstellationsbeschreibung] klaus
Zeile 17: Zeile 17:
 <code> <code>
  
- +-------------------+                                                                                         +---------------------+ + +-------------------+                                          +---------------------+ 
-                                                                                                           |                     | +                                                            |                     | 
-   MASTER-Server                                                                                           |   SLAVE-Server      | +   MASTER-Server                                            |   SLAVE-Server      | 
-   =============                                                                                           |   ============      | +   =============                                            |   ============      | 
-                                                                                                           |                     |  +                                                            |                     |  
-   Präsenz:        |                                                                                         |   Präsenz:          |  +   Präsenz:        |                                          |   Präsenz:          |  
-   DMZ                                                                                                     |   DMZ, Intranet     |  +   DMZ                                                      |   DMZ, Intranet     |  
-                                                                                                           |                     |  +                                                            |                     |  
- +-------------------+                                                                                         +---------------------+ + +-------------------+                                          +---------------------+ 
-                                                                                                           |                     | +                                                            |                     | 
-   DMZ-IP-Adresse:                                                                                        |   DMZ-IP-Adresse:   | +   DMZ-IP-Adresse:                                         |   DMZ-IP-Adresse:   | 
-   192.168.0.20    | -------> Transfer der Zone DMZ   <------> Anfrage des Transfers der Zone DMZ   <------- |   192.168.0.10      |      +   192.168.0.20    | -------> Transfer der Zone DMZ   ------> |   192.168.0.10      |      
-                                                                                                           |                     | +                                                            |                     | 
-   DMZ-IP-Adresse:                                                                                        |   intra-IP-Adresse:+   DMZ-IP-Adresse:                                         |   intra-IP-Adresse:
-   192.168.0.20    | -------> Transfer der Zone intra <------> Anfrage des Transfers der Zone intra <------- |   192.168.1.1       | +   192.168.0.20    | -------> Transfer der Zone intra ------> |   192.168.1.1       | 
-                                                                                                           |                     | +                                                            |                     | 
- +-------------------+                                                                                         +---------------------++ +-------------------+                                          +---------------------+
  
 </code> </code>
Zeile 208: Zeile 208:
  
 key "intra." { key "intra." {
-        algorithm hmac-md5;+        algorithm hmac-sha256;
         secret "kfgHKkh27TApI3pD+z2GIB==";         secret "kfgHKkh27TApI3pD+z2GIB==";
 }; };
Zeile 329: Zeile 329:
         match-clients { key intra. ; "intra"; };         match-clients { key intra. ; "intra"; };
         // Only following destination can resolv the zon informations.         // Only following destination can resolv the zon informations.
-        match-destinations { "intra"; };+        match-destinations { key intra. ; "intra"; };
  
         // Allow transfer for server with key.         // Allow transfer for server with key.
Zeile 469: Zeile 469:
  
 key "intra." { key "intra." {
-        algorithm hmac-md5;+        algorithm hmac-sha256;
         secret "kfgHKkh27TApI3pD+z2GIB==";         secret "kfgHKkh27TApI3pD+z2GIB==";
 }; };
Zeile 498: Zeile 498:
         // Only following clients can resolv the zone informations.         // Only following clients can resolv the zone informations.
         match-clients { key intra. ; "intra"; };         match-clients { key intra. ; "intra"; };
-...+        // Only following destination can resolv the zon informations. 
 +        match-destinations { key intra; "intra"; }; 
         // Allow transfer for server with key.         // Allow transfer for server with key.
-        server 192.168.1.1 { keys intra. ; };+        server 192.168.0.1 { keys intra. ; };
 ...        ...       
 </code> </code>
Zeile 684: Zeile 686:
  
 key "intra." { key "intra." {
-        algorithm hmac-md5;+        algorithm hmac-sha256;
         secret "kfgHKkh27TApI3pD+z2GIB==";         secret "kfgHKkh27TApI3pD+z2GIB==";
 }; };
Zeile 805: Zeile 807:
         match-clients { key intra. ; "intra"; };         match-clients { key intra. ; "intra"; };
         // Only following destination can resolv the zon informations.         // Only following destination can resolv the zon informations.
-        match-destinations { "intra"; };+        match-destinations { key intra. ; "intra"; };
  
         // Allow transfer for server with key.         // Allow transfer for server with key.
Zeile 946: Zeile 948:
  
 key "intra." { key "intra." {
-        algorithm hmac-md5;+        algorithm hmac-sha256;
         secret "kfgHKkh27TApI3pD+z2GIB==";         secret "kfgHKkh27TApI3pD+z2GIB==";
 }; };
Zeile 955: Zeile 957:
  
 :!: **WICHTIG** - **Der Einsatz eines TSIG-Schlüssels ist bei der hier vorgestellten Konstellation des Zonen-Transfers entscheidend und wird nachfolgend behandelt:** :!: **WICHTIG** - **Der Einsatz eines TSIG-Schlüssels ist bei der hier vorgestellten Konstellation des Zonen-Transfers entscheidend und wird nachfolgend behandelt:**
-  * **FIXME**+  * [[tachtler:dns_isc_bind_centos_6_-_master-slave_und_tsig#tsig-schluessel|DNS ISC bind CentOS 6 - Master-Slave und TSIG - TSIG-Schlüssel]]
  
 === Definitionen der "Views" === === Definitionen der "Views" ===
Zeile 975: Zeile 977:
         // Only following clients can resolv the zone informations.         // Only following clients can resolv the zone informations.
         match-clients { key intra. ; "intra"; };         match-clients { key intra. ; "intra"; };
-...+        // Only following destination can resolv the zon informations. 
 +        match-destinations { key intra; "intra"; }; 
         // Allow transfer for server with key.         // Allow transfer for server with key.
         server 192.168.0.20 { keys intra. ; };         server 192.168.0.20 { keys intra. ; };
Zeile 1054: Zeile 1058:
   * [[http://ftp.isc.org/isc/bind9/cur/9.8/doc/arm/Bv9ARM.ch04.html#tsig|ISC bind - Version 9.8 - Dokumentation zu TSIG]]   * [[http://ftp.isc.org/isc/bind9/cur/9.8/doc/arm/Bv9ARM.ch04.html#tsig|ISC bind - Version 9.8 - Dokumentation zu TSIG]]
  
 +==== Erstellen ====
  
 +Um einen TSGI-Schlüssel(paar) zu erstellen, kann nachfolgender Befehl genutzt werden:
 +<code>
 +# dnssec-keygen -a hmac-sha256 -b 128 -n HOST intra.
 +Kintra.+163+32328
 +</code>
 +//* Die Generierung kann einige Zeit in Anspruch nehmen, je nach Leistungsfähigkeit des Servers.//
 +
 +Anschließend sollten zwei Dateien entstanden sein, was mit nachfolgendem Befehl überprüft werden kann:
 +<code>
 +# ls -la *intra.*
 +-rw-r--r-- 1 root root  49 Aug  6 14:15 Kintra.+163+32328.key
 +-rw------- 1 root root 168 Aug  6 14:15 Kintra.+163+32328.private
 +</code> 
 +
 +Hier ist nur die Datei 
 +  * **''Kintra.+113+32328.private''**
 +interessant, dessen Inhalt mit nachfolgendem Befehl ausgegeben werden kann:
 +<code ini>
 +# cat Kintra.+163+32328.private 
 +Private-key-format: v1.3
 +Algorithm: 163 (HMAC_SHA256)
 +Key: kfgHKkh27TApI3pD+z2GIB==
 +Bits: AAA=
 +Created: 20120806121239
 +Publish: 20120806121239
 +Activate: 20120806121239
 +</code>
 +
 +:!: **HINWEIS** - Hier kann nun die **"Zeichenkette"**, welche nach der Bezeichnung **''Key:''** steht verwendet werden.
 +
 +Die Dateien selbst, können gelöscht werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<code>
 +# rm Kintra.+163+32328.*
 +</code>
 +
 +==== Verwenden ====
 +
 +Nun muss die jeweilige Konfigurationsdatei 
 +  * **''/etc/named.conf''**
 +des 
 +  * **Master**-Servers und des 
 +  * **Slave**-Servers 
 +um nachfolgende Zeilen erweitert werden, damit dem jeweiligen Server der **gleiche TSIG-Schlüssel** bekannt ist und verwendet werden kann (**nur relevanter Ausschnitt**):
 +<code ini>
 +...
 +key "intra." {
 +        algorithm hmac-sha256;
 +        secret "kfgHKkh27TApI3pD+z2GIB==";
 +};
 +...
 +</code>
 +
 +===== Log-Datei des Zonen-Transfers =====
 +
 +Zur Überprüfung, ob ein **Zonen-Transfer** erfolgreich durchgeführt wurde, kann nachfolgender Befehl genutzt werden, der die Log-Datei
 +  * **''/var/named/data/named.run''**
 +auf dem **Slave**-Server, zur Ausgabe auf den Bildschirm bring (**nur relevanter Ausschnitt**):
 +<code>
 +...
 +06-Aug-2012 14:21:35.719 general: info: zone tachtler.net/IN/intra: Transfer started.
 +06-Aug-2012 14:21:35.720 xfer-in: info: transfer of 'tachtler.net/IN/intra' from 192.168.0.20#53: connected using 192.168.1.1#57420
 +06-Aug-2012 14:21:35.723 general: warning: zone tachtler.net/IN/intra: main._domainkey.tachtler.net/A: bad owner name (check-names)
 +06-Aug-2012 14:21:35.723 general: info: zone tachtler.net/IN/intra: transferred serial 2012080502: TSIG 'intra'
 +06-Aug-2012 14:21:35.724 xfer-in: info: transfer of 'tachtler.net/IN/intra' from 192.168.0.20#53: Transfer completed: 1 messages, 98 records,
 +2459 bytes, 0.003 secs (819666 bytes/sec)
 +06-Aug-2012 14:21:35.218 general: info: zone 171.217.88.in-addr.arpa/IN/intra: Transfer started.
 +06-Aug-2012 14:21:35.219 xfer-in: info: transfer of '171.217.88.in-addr.arpa/IN/intra' from 192.168.0.20#53: connected using 192.168.1.1#58583
 +06-Aug-2012 14:21:35.220 general: info: zone 171.217.88.in-addr.arpa/IN/intra: transferred serial 2012080502: TSIG 'intra'
 +06-Aug-2012 14:21:35.220 xfer-in: info: transfer of '171.217.88.in-addr.arpa/IN/intra' from 192.168.0.20#53: Transfer completed: 1 messages,
 +6 records, 306 bytes, 0.001 secs (306000 bytes/sec)
 +...
 +</code>
 +
 +==== Fehlersuche ====
 +
 +Falls ein Fehler, wie nachfolgend dargestellt (**nur relevanter Ausschnitt**),
 +<code>
 +...
 +06-Aug-2012 13:00:36.510 general: info: zone 171.217.88.in-addr.arpa/IN/intra: refresh: failure trying master 192.168.0.20#53 
 +(source 192.168.1.1#0): tsig indicates error
 +...
 +</code> 
 +in der Log-Datei auftreten sollte und der **Zonen-Transfer**, **nicht stattgefunden hat**, sollten nachfolgende Konfigurationen überprüft werden:
 +  - Ist der generierte Schlüssel korrekt erstellt worden?
 +  - Ist der **Name** des generierten Schlüssels (hier z.B. **intra.**), auch so in der Konfigurationsdatei konfiguriert? (**Punkt am Ende das Namens?)**
 +  - Sind die **Views** korrekt konfiguriert?
 +    - z.B. Zone - **ohne** - TSIG, wie z.B. ''localhost''
 +      - <code>match-clients { !key intra. ; "localhost"; };</code>
 +      - <code>match-destinations { "localhost"; };</code>
 +    - z.B. Zone - **mit** - TSIG, wie z.B. ''intra''
 +      - <code>match-clients { key intra. ; "intra"; };</code>
 +      - <code>match-destinations { key intra. ; "intra"; };</code>
 +      - **Master**-Server -> <code>server 192.168.1.1 { keys intra; };</code>
 +      - **Slave**-Server -> <code>server 192.168.0.20 { keys intra; };</code>
 +
 +===== Zonen-Transfer über NAT-Firewall =====
 +
 +Um einen **Zonen-Transfer** über eine Firewall, welche z.B. bei alle ausgehenden Verbindungen, via **NAT** die Absender-IP-Adresse umschreibt (MASQUERADING), sind nachfolgende **iptables**-Regeln 
 +  * :!: **VOR** :!:
 +der **MASQUERADING**-Regel einzufügen:
 +
 +Um die aktuellen ''iptables''-Regeln **(CHAIN NAT)** erweitern zu können, sollten diese erst einmal aufgelistet werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<code>
 +# iptables -t nat -nvL --line-numbers
 +Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination          
 +
 +Chain POSTROUTING (policy ACCEPT 980 packets, 82233 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1     5224  379K SNAT       all  --  *      eth0    0.0.0.0/           0.0.0.0/          to:10.0.0.10 
 +
 +Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +</code>
 +
 +Nachfolgende Befehle, fügen folgende ''iptables''-Regeln dem ''iptables''-Regelwerk **(CHAIN NAT)** jeweils ab der **Position 1** hinzu, ohne das der Paketfilter angehalten werden muss:
 +  * <code>-A POSTROUTING -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT</code>
 +  * <code>-A POSTROUTING -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT</code>
 +  * <code>-A OUTPUT -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT</code>
 +  * <code>-A OUTPUT -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT</code>
 +
 +und hier die Befehle:
 +<code>
 +# iptables -I POSTROUTING 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT
 +# iptables -I POSTROUTING 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT
 +# iptables -I OUTPUT 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p tcp -m tcp --dport 53 -j ACCEPT
 +# iptables -I OUTPUT 1 -s 192.168.1.1/32 -d 192.168.0.20/32 -o eth0 -p udp -m udp --dport 53 -j ACCEPT
 +</code>
 +
 +Ein erneute Abfrage des ''iptables''-Regelwerts **(CHAIN NAT)** , sollte dann nachfolgend dargestellte Ausgabe ergeben, was mit folgendem Befehl durchgeführt werden kann:
 +<code>
 +# iptables -t nat -nvL --line-numbers
 +Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination          
 +
 +Chain POSTROUTING (policy ACCEPT 980 packets, 82233 bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1       36  2160 ACCEPT     tcp  --  *      eth0    192.168.1.1          192.168.0.20        tcp dpt:53 
 +2       82 10989 ACCEPT     udp  --  *      eth0    192.168.1.1          192.168.0.20        udp dpt:53 
 +3     5224  379K SNAT       all  --  *      eth0    0.0.0.0/           0.0.0.0/          to:192.168.0.10 
 +
 +Chain OUTPUT (policy ACCEPT 3598 packets, 294K bytes)
 +num   pkts bytes target     prot opt in     out     source               destination         
 +1       36  2160 ACCEPT     tcp  --  *      eth0    192.168.1.1          192.168.0.20        tcp dpt:53 
 +2       82 10989 ACCEPT     udp  --  *      eth0    192.168.1.1          192.168.0.20        udp dpt:53
 +</code>
 +
 +Die neuen Zeilen sind an **Position 1** und **Postition 2** zu sehen, hier nachfolgend zur Verdeutlichung noch einmal dargestellt (**nur relevanter Ausschnitt**):
 +<code>
 +...
 +1       36  2160 ACCEPT     tcp  --  *      eth0    192.168.1.1          192.168.0.20        tcp dpt:53 
 +2       82 10989 ACCEPT     udp  --  *      eth0    192.168.1.1          192.168.0.20        udp dpt:53
 +...
 +1       36  2160 ACCEPT     tcp  --  *      eth0    192.168.1.1          192.168.0.20        tcp dpt:53 
 +2       82 10989 ACCEPT     udp  --  *      eth0    192.168.1.1          192.168.0.20        udp dpt:53
 +...
 +</code>
 +
 +Um diese ''iptables''-Regel dauerhaft, auch nach einem Neustart des Server, weiterhin im ''iptables''-Regelwerk zu speichern, muss nachfolgend dargestellter Befehl abschließend noch ausgeführt werden:
 +<code>
 +# service iptables save
 +iptables: Saving firewall rules to /etc/sysconfig/iptables: OK  ]
 +</code>
  
tachtler/dns_isc_bind_centos_6_-_master-slave_und_tsig.1344250578.txt.gz · Zuletzt geändert: 2012/08/06 12:56 von klaus