40.6. Sichere Transaktionen

Sichere Transaktionen kann man mithilfe der „Transaction SIGnatures“ (TSIG) verwirklichen. Dafür kommen Transaktionsschlüssel (engl. Transaction Keys) und -signaturen (engl. Transaction Signatures) zum Einsatz, deren Erzeugung und Verwendung in diesem Abschnitt beschrieben wird.

Benötigt werden sichere Transaktionen bei der Kommunikation von Server zu Server und für dynamische Aktualisierungen der Zonendaten. Eine auf Schlüsseln basierende Zugriffskontrolle bietet dafür eine weit größere Sicherheit als eine Kontrolle, die auf IP-Adressen basiert.

Ein Transaktionsschlüssel kann mit folgendem Kommando erzeugt werden (für mehr Informationen vgl. die Manualpage von man dnssec-keygen):

   dnssec-keygen -a hmac-md5 -b 128 -n HOST host1-host2
  

Es entstehen dadurch zwei Dateien mit beispielsweise folgenden Namen:

Khost1-host2.+157+34265.private
Khost1-host2.+157+34265.key

Der Schlüssel ist in beiden Dateien enthalten (z.B. ejIkuCyyGJwwuN3xAteKgg==). Zur weiteren Verwendung sollte Khost1-host2.+157+34265.key auf sicherem Wege (zum Beispiel mit scp) auf den entfernten Rechner übertragen und dort in der /etc/named.conf eingetragen werden, um eine sichere Kommunikation zwischen host1 und host2 zu bewirken:

key host1-host2. {
 algorithm hmac-md5;
 secret ";ejIkuCyyGJwwuN3xAteKgg==;
};
[Warning]Zugriffsrechte von /etc/named.conf

Achten Sie darauf, dass die Zugriffsrechte auf /etc/named.conf eingeschränkt bleiben; die Vorgabe ist 0640 für root und die Gruppe named; alternativ kann man die Schlüssel auch in eine eigene geschützte Datei auslagern und diese dann miteinbeziehen.

Damit auf dem Server host1 der Schlüssel für host2 mit der Beispielsadresse 192.168.2.3 verwendet wird, muss auf dem Server in der /etc/named.conf eingetragen werden:

server 192.168.2.3 {
  keys { host1-host2. ;};
};

In den Konfigurationsdateien von host2 müssen entsprechende Einträge vorgenommen werden.

Zusätzlich zu den ACLs auf Basis von IP-Adressen und Adressbereichen, soll man, um sichere Transaktionen auszuführen, TSIG-Schlüssel hinzufügen; ein Beispiel dafür kann so aussehen:

allow-update { key host1-host2. ;};

Mehr dazu findet man im BIND Administrator Reference Manual unter update-policy.