project:dns-axfr-tsig
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| project:dns-axfr-tsig [2016/11/09 19:34] – created 37.209.107.175 | project:dns-axfr-tsig [2016/11/16 10:52] (current) – 37.209.107.175 | ||
|---|---|---|---|
| Line 37: | Line 37: | ||
| < | < | ||
| - | allow-transfer { !{ !10.0.0.1; any; }; key " | + | allow-transfer { !{ !10.0.0.1; any; }; key " |
| </ | </ | ||
| Das ist grob die syntaktisch etwas verbastelte Ansage: | Das ist grob die syntaktisch etwas verbastelte Ansage: | ||
| - | "Sperre (!), was die folgende Bedingung erfüllt: | + | |
| - | NICHT (!) 10.0.0.1 | + | Sperre (!), was die folgende Bedingung erfüllt: |
| - | oder | + | NICHT (!) 10.0.0.1 |
| - | beliebig (any) | + | oder |
| - | " | + | beliebig (any) |
| + | |||
| Damit werden alle Requests abgewiesen, die NICHT 10.0.0.1 entsprechen, | Damit werden alle Requests abgewiesen, die NICHT 10.0.0.1 entsprechen, | ||
| ohne fuer 10.0.0.1 eine Entscheidung getroffen zu haben. | ohne fuer 10.0.0.1 eine Entscheidung getroffen zu haben. | ||
| Anschließend kann der Request bei passendem Key verifiziert werden, | Anschließend kann der Request bei passendem Key verifiziert werden, | ||
| womit die gewünschte AND-Verknüpfung erreicht ist. | womit die gewünschte AND-Verknüpfung erreicht ist. | ||
| + | |||
| + | Für ausschliesslichen TSIG-Betrieb ist das ausreichend. | ||
| + | |||
| + | === Alternative Authorisierung mit TSIG oder IP-Adresse === | ||
| + | |||
| + | Soll parallel ebenfalls mit nur der IP-Adresse des Clients | ||
| + | authorisiert werden koennen, ergeben sich zwei Moeglichkeiten: | ||
| + | |||
| + | * die zur Authorisierung hinreichenden IP-Adressen werden vorgenannt: | ||
| + | |||
| + | < | ||
| + | allow-transfer { | ||
| + | 10.0.1.1; | ||
| + | 2000: | ||
| + | !{ !10.0.0.1; any; }; key " | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | * der Ausdruck fuer den Key wird gekapselt: | ||
| + | |||
| + | < | ||
| + | allow-transfer { | ||
| + | { !{ !10.0.0.1; any; }; key " | ||
| + | 10.0.1.1; | ||
| + | 2000: | ||
| + | }; | ||
| + | </ | ||
| + | |||
| + | === Authorisierung fuer mehrere IP-Adressen mit dem selben Key === | ||
| + | |||
| + | < | ||
| + | allow-transfer { | ||
| + | !{ !10.0.0.1; !10.0.0.2; any; }; key " | ||
| + | }; | ||
| + | </ | ||
| ==== Namen der Schlüssel ==== | ==== Namen der Schlüssel ==== | ||
| Line 74: | Line 111: | ||
| Ich habe mich schließlich entschieden für das Schema: | Ich habe mich schließlich entschieden für das Schema: | ||
| < | < | ||
| - | k..< | + | k..< |
| + | </ | ||
| + | für einzelne Secondary-DNS bzw. für multiple Secondaries: | ||
| + | < | ||
| + | k.<mydnsfqdn> | ||
| </ | </ | ||
| + | |||
| + | Das Trennstring "< | ||
| ===== Erzeugen und Ausrollen der TSIG Keys ===== | ===== Erzeugen und Ausrollen der TSIG Keys ===== | ||
| + | |||
| + | ** Dies sind Notizen, die ich waehrend der Einrichtung gemacht habe, ** | ||
| + | ** diese sind nicht unbedingt korrekt oder vollstaendig! | ||
| + | |||
| + | Auf dem Primary DNS: | ||
| + | |||
| + | < | ||
| + | AXFRSERVER=" | ||
| + | AXFRSERVERIPS=" | ||
| + | AXFRCLIENT=" | ||
| + | AXFRCLIENTIPS=" | ||
| + | KEYID=" | ||
| + | echo $KEYID | ||
| + | |||
| + | DIR=$( mktemp -d / | ||
| + | ls -ld $DIR | ||
| + | cd $DIR | ||
| + | KEYFILENAME=$( | ||
| + | dnssec-keygen -a HMAC-SHA512 -b 512 -n HOST -r / | ||
| + | ) | ||
| + | echo $KEYFILENAME | ||
| + | KEY=$( | ||
| + | awk '$1 == " | ||
| + | ) | ||
| + | echo $KEY | ||
| + | cd - | ||
| + | rm -rf " | ||
| + | |||
| + | touch / | ||
| + | vo -o / | ||
| + | cat << EOF > / | ||
| + | key " | ||
| + | | ||
| + | | ||
| + | }; | ||
| + | // only the secondary needs those | ||
| + | // but so we have one file generated for both roles | ||
| + | EOF | ||
| + | for i in $AXFRSERVERIPS ; do | ||
| + | cat << EOF >> / | ||
| + | //#server $i { | ||
| + | //# keys { " | ||
| + | //#}; | ||
| + | EOF | ||
| + | done | ||
| + | cat / | ||
| + | vo -i / | ||
| + | |||
| + | vo / | ||
| + | +include "/ | ||
| + | |||
| + | vo / | ||
| + | acl zone-xfer-allowed { | ||
| + | +{ !{ | ||
| + | + !10.1.0.1; | ||
| + | + !10.2.0.1; | ||
| + | + !10.3.0.1; | ||
| + | + any; // catchall | ||
| + | +}; key " | ||
| + | |||
| + | # load new config: | ||
| + | rndc reconfig | ||
| + | |||
| + | </ | ||
| + | |||
| + | Auf den Secondary DNS: | ||
| + | |||
| + | * Kopieren der Datei / | ||
| + | |||
| + | < | ||
| + | AXFRSERVER=" | ||
| + | AXFRCLIENT=" | ||
| + | KEYID=" | ||
| + | echo $KEYID | ||
| + | |||
| + | vo -o / | ||
| + | sed -i ' | ||
| + | vo -i / | ||
| + | |||
| + | vo / | ||
| + | +include "/ | ||
| + | |||
| + | # load new config: | ||
| + | rndc reconfig | ||
| + | |||
| + | </ | ||
project/dns-axfr-tsig.1478716490.txt.gz · Last modified: 2016/11/09 19:34 by 37.209.107.175