PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Verständnisprobleme mit BIND9 Sicherheitsmechanismen?



hilfe-suchender
02.09.05, 08:58
Hallo,

könnte im Bezug auf BIND9-Sicherheit ein wenig Hilfe gebrauchen.
Ich beschäftige mich gerade mit TSIG , TKEY und SIG(0) sowie DNSSEC und weiß nicht recht wie dies anzuwenden ist um meinen Server wasserdicht zu machen.

Habe zur Zeit einen Primären und einen Sekundären DNS Server am laufen, sowie einen Primären DHCP Server (dhcpd) der Dynamische Updates durchführt.

Sowohl die Zonentransfers als auch die Dynamischen Updates habe ich mit TSIG abgesichert. Funktioniert auch ganz gut.

Jetzt meine Fragen.

Der TSIG Schlüssel muss ja auf dem einen Server angelegt werden und auf den anderen manuell übertragen werden. Verwendung findet nur der HMAC-MD5 Algorithmus.

1. TKEY

Das Übertragen der Schlüssel muss händisch erfolgen. Da aus Sicherheitsgründen die Schlüssen für die prim. DNS -> sek. DNS sowie DHCP -> prim. DNS höfters mal geändert werden sollten möchte ich eine automatische Generierung sowie verschlüsselte Übertragung der Schlüssel an die anderen Server. Dazu wird TKEY mit dem Diffie-Hellmann-Key-Exchanger Algorithmus eingesetzt.

Leider habe ich keine Ahnung wie der Schlüssel mit dnssec-keygen generiert werden muss. Kann mir da wer helfen.

Habe es mit > dnssec-keygen -a DH -b 512 -n HOST dateiname
versucht, aber da scheint mein PC abzuschmieren.

Die Einträge tkey-dhkey und thkey-domain habe ich in der named.conf auf dem primären DNS Server eingetragen. Müssen diese Einträge auch auf dem sekundären DNS in die named.conf ?

Müssen für TKEY noch manuell irgendwelche Einträge in den Zonefiles gemacht werden, bevor TKEY verwendet werden kann?

Ist TKEY nur für Zonentransfers geeignet, so dass ich für die DHCP Server weiterhin das manuelle TSIG einsetzen muss oder kann ich die Dynamischen Updates auch mit TKEY abwickeln.?



2. SIG(0)

TSIG bzw. TSIG/TKEY verwendet ausschließlich HMAC-MD5. Dieser soll nicht mehr besonders sicher sein, da der Algo schon höfters genackt worden ist (siehe de.wikipedia.org).

In einem Buch (BIND9 ge-packt) habe ich gelesen, dass mach bei Zonentransfers auch SIG(0) [Public Keys] einsetzen kann. Also ein asymetrisches Verfahren, was viel sicherer ist als ein symmetrisches verfahren. Dazu können andere Algorithmen verwendet werden wie RSA, DSA und RSASHA1. Dynamische Updates lassen sich mit SIG(0) wohl nicht machen, da der dhcpd nur TSIG mit HMAC-MD5 kann. Auch muss man die Schlüssel manuell übertragen, da es hierbei keinen Key-Exchange wie bei TSIG/TKEY gibt. Aber die Algorithmen sind viel sicherer.

Die Schlüssel kann ich anlegen mit dnssec-keygen.

Leider stand nicht da was ich in der named.conf und in den Zonendateien eintragen muss.


3. DNSSEC

Habe gelesen, dass DNSSEC nur für die Server (DNS) - Client (Resolver) Kommunikation da ist und dafür sorgt, dass Clients erkennen können, ob eine Antwort gefälscht oder echt ist.

Im Gegensatz soll TSIG, TSIG/TKEY und SIG(0) nur für die DNS-Server zu DNS-Server bzw. DHCP Server zu DNS Server Kommunikation da sein. Habe ich das richtig verstanden?

Demzufolge kann man DNSSEC und TSIG gleichzeitig einsetzen?

DNSSEC verwendet die gleichen Algorithmen wie SIG(0), also RSA , DSA oder RSASHA1. Welcher ist denn nun der sicherste von den dreien?

Kann mir wer etwas kleinschrittiger erklären, wie man DNSSEC einrichtet?

Habe selbst schon mit dnssec-keygen -a RSASHA1 -b 2048 -n ZONE zonenname für die forward und die reversed zone ein Schlüsselpaar erzeugt.

Habe in der named.conf auf dem primären Namensserver dnssec-enable yes sowie dnssec-must-be-secure yes gesetz und in den beiden zone-Anweisungen an die Dateinamen localdomain.zone und 192.168.1.rev was Wort .signed angehängt und die Dateien im named Verzeichnis ebenfalls so umbenannt.

Weiter komm ich aber nicht. Zum einen weiß ich nicht, ob ich das auf dem sekundären DNS auch so machen soll (aber ich denke schon, sonst bringt das ja nichts, da die Clients ja auch den sekundären fragen können). Zum anderen muss man zu jedem Recordset einen NSEC Record einfügen und dann noch einen DNSKEY-Record aus der Schlüsseldatei *.private und dann muss man irgendwie noch mit dem Tool dnssec-signed die zonen signieren.

Kein Plan wie das geht. Kann mir dabei wer helfen?

Gruß
Hilfe-Suchender