DNS-Replikation mit TSIG absichern

8. Januar 2010 | Von | Kategorie: Admin | DNS | Firewalling | VPN | IDS

Wer seine eigenen Zonen administriert, weiß wie wichtig die hier gespeicherten Daten sind. Damit bei Ausfall eines Servers die Daten weiterhin abgerufen werden, halten die meisten Administratoren die Daten redundant auf mehreren DNS-Servern vor. Der Einfachheit halber nutzt man hier die in das DNS-Protokoll eingebaute Replikation mit Hilfe der Zonentransfers. Damit nicht jeder einen Zonentransfer durchführen kann, wird der Zonentransfer normalerweise nur wenigen IP-Adressen (den sekundären Servern) erlaubt. Dies kann auf die TSIG-Authentifizierung umgestellt werden.

Hierzu benötigen wir zunächst Schlüssel. Diese erzeugen wir mit dem Befehl dnssec-keygen.

dnssec-keygen  -a hmac-md5 -b 256 -n HOST ns0-ns3.spenneberg.net

Mit der Option -a wird der Algorithmus angegeben. Welche Algorithmen unterstützt werden sollte auf den beteiligten DNS-Servern geprüft werden. Der angegebene Name ist frei wählbar. Er sollte aber den Regeln für FQDNs entsprechen. Der Befehl erzeugt zwei Dateien, die im wesentlichen identische Informationen enthalten. Zeigen Sie eine der beiden Dateien an und extrahieren Sie die Schlüsselinformation:


cat Kns0-ns3.spenneberg.net.+157+32987.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: zMcax0Sy8kN3fEcp/Twfgx0WDJ1rjAp24lP9ZfJKD5k=
Bits: AAA=

Dies ist natürlich nicht mein echter Schlüssel. Sie müssen auf Ihren Schlüssel auch aufpassen. Es handelt sich hier um einen symmetrischen Schlüssel auch wenn die Dateinamen etwas anderes andeuten.

Erzeugen Sie nun in den Konfigurationsdateien aller DNS-Server folgenden Key-Eintrag:


key ns0-ns3.spenneberg.net. {

algorithm hmac-md5;

secret "zMcax0Sy8kN3fEcp/Twfgx0WDJ1rjAp24lP9ZfJKD5k=";

};



Damit die Server diesen Schlüssel auch für die Kommunikation untereinander verwenden, tragen Sie auf allen Server die jeweils anderen Server ein.



server 87.106.54.221 {
keys {ns0-ns3.spenneberg.net; };
};

Nun verwenden die Server für die Kommunikation untereinander bereits die TSIG-Authentifizierung. Jetzt müssen wir nur noch diese Authentifizierung verlangen. Hierbei müssen wir zwei Vorgänge unterscheiden:

  • Der sekundäre Nameserver baut eine Verbindung zum primären Nameserver für den Zonentransfer auf. Der primäre Nameserver kann also für den Zonentransfer eine Authentifizierung mit TSIG fordern.
  • Der primäre Nameserver sendet ein Notify an den sekundären Nameserver wenn sich die Zone ändert. Der sekundäre Nameserver kann hier ebenfalls die Authentifizierung fordern.

Auf dem primären Nameserver werden die folgenden Optionen hinzugefügt:


options {

allow-transfer { key ns0-ns3.spenneberg.net; };
notify yes;
}


Auf dem sekundären Nameserver tragen wir ein:



options {

notify no;
 allow-transfer { none; };
 allow-notify { key ns0-ns3.spenneberg.net; };
};

Klappt alles, können wir die Authentifizierung auch in den Protokollen verfolgen:

Jan  8 10:34:44 mail2 named[27775]: client 91.190.225.69#14917: received notify
for zone 'os-s.net': TSIG 'ns0-ns3.spenneberg.net'

Post to Twitter Post to Yahoo Buzz Post to Delicious Post to Digg Post to Facebook Post to Ping.fm Post to Reddit

Tags: | |

Schreibe einen Kommentar

Fühle dich ermuntert einen Kommentar, Anmerkungen, Hinweise oder deine Ideen zum Thema zu hinterlassen. Wir freuen uns über deine Rückmeldung.