|
Suche |
Der DNS Dienst ist für zahlreiche andere Dienste im Internet unerlässlich, jedoch sind im Laufe der Zeit immer wieder Sicherheitslücken aufgetreten, die es erlaubten, die DNS Zone zu korrumpieren ("DNS poisoning"). Obwohl dafür jeweils schnell Patches zur Verfügung gestellt wurden, empfiehlt sich nach Möglichkeit die Einrichtung einer besser gesicherten Lösung: DNSSEC. Um die Funktionsweise von DNSSEC zu verstehen muss man sich mit asymmetrischer Verschlüsselung auseinandersetzen. Diese basiert auf zwei Schlüsseln: einem öffentlichen und einem privaten. Der private Schlüssel erlaubt es, Informationen zu verschlüsseln, während der öffentliche Schlüssel es nur erlaubt, diese zu lesen. Der private Schlüssel ist auch für die Erstellung eines öffentlichen Schlüssels erforderlich. Dadurch kann die Information nicht mehr gelesen werden, wenn sich der öffentliche Schlüssel oder die enthaltenen Informationen ändern. Derzeit wird empfohlen, den ZSK (siehe Begriffserklärung weiter unten) alle 3 Monate und den KSK einmal pro Jahr zu ändern. Denken Sie auch daran, dass die zuständige Registry Ihre Zone validieren muss. Bei DNSSEC fügt der Administrator mit seinem privaten Schlüssel eine Verschlüsselung (RRSIG) für jeden DNS Eintrag zu seiner Zone hinzu, und veröffentlicht einen öffentlichen Schlüssel (DNSKEY), damit diese gelesen werden können. Ausserdem übertragen wir zusätzlich einen Fingerprint des Schlüssels an die Registry (DS). In dieser Hilfe müssen Sie die roten Einträge durch Ihre eigenen Werte ersetzen. In den grauen Kästen finden Sie praktische Beispiele. - Ihr Domainname verwendet die zu Ihrem Server gehörenden DNS Server (ns12345.ovh.net/sdnsX.ovh.net oder ks12345.kimsufi.com/ns.kimsufi.com) - Die DNS Zone Ihres Domainnamens ist bereits auf Ihrem dedizierten Server konfiguriert ZSK: Zone signing key, besteht aus einem öffentlichen und einem privaten Schlüssel. Wird verwendet, um die Einträge der Zone zu signieren, und ist der Registry NICHT bekannt. KSK: Key signing key, besteht aus einem öffentlichen und einem privaten Schlüssel. Wird nur verwendet, um die ZSK zu signieren, und ist wiederum durch einen DS Eintrag in der Root-Zone (bei der Registry) signiert. DNSKEY: Der Eintrag, der einen öffentlichen Schlüssel enthält DS: Ein Fingerprint eines DNSKEY, wird an die Root-Zone übermittelt Wir verwenden dazu das Tool dnssec-keygen. Dieses verwendet Entropie, die bei der Verwendung der Maschine generiert wird. Auf einer wenig genutzten Maschine kann die Generierung einige Zeit in Anspruch nehmen. In diesem Fall können Sie das Argument "-r /dev/urandom" verwenden, um Zeit zu gewinnen, dies wird allerdings von OVH nicht empfohlen. Wir arbeiten direkt in dem Verzeichnis, das die DNS Zonen enthält. In unserem Beispiel ist dies das Verzeichnis "/etc/named/". Wir erstellen den Schlüssel mit dem Befehl "dnssec-keygen -f KSK -a RSASHA256 -b 2048 -n ZONE meine_domain.eu": root@ks34682 ~# dnssec-keygen -f KSK -r /dev/urandom -a RSASHA256 -b 2048 -n ZONE likarum.eu Generating key pair.........................................................................+++ .............................................+++ Klikarum.eu.+008+04789 Der erstellte KSK heisst Klikarum.eu.+008+04789, wir werden diesen umbenennen, damit er einfacher zu verwenden ist: root@ks34682 named# mv Klikarum.eu.+008+10954.key Klikarum.eu.ksk.key root@ks34682 named# mv Klikarum.eu.+008+10954.private Klikarum.eu.ksk.private Wir erstellen den Schlüssel mit dem Befehl "dnssec-keygen -a RSASHA256 -b 2048 -n ZONE meine_domain.eu": root@ks34682 ~# dnssec-keygen -r /dev/urandom -a RSASHA256 -b 2048 -n ZONE likarum.eu Generating key pair....................................................................+++ .....+++ Klikarum.eu.+008+43119 Der erstellte KSK heisst Klikarum.eu.+008+43119, wir benennen auch diesen um: root@ks34682 named# mv Klikarum.eu.+008+02184.key Klikarum.eu.zsk.key root@ks34682 named# mv Klikarum.eu.+008+02184.private Klikarum.eu.zsk.private Die *.Key Dateien enthalten jetzt die öffentlichen Schlüssel, diese müssen nun in die DNS Zone eingefügt werden. Sie können entweder deren Inhalt hinzufügen, oder Einträge dafür in Ihrer Zone erstellen. In diesem Beispiel erstellen wir die Einträge: $include /etc/named/Kmondomaine.eu.zsk.key ; ZSK $include /etc/named/Kmondomaine.eu.ksk.key ; KSK Wir erhöhen auch den SOA Eintrag der Zone, in diesem Beispiel wird der Wert 2011122603 durch 2011122604 ersetzt. Die DNS Zone sieht nun wie folgt aus: root@ks34682 named# cat likarum.eu $ttl 86400 likarum.eu. IN SOA likarum.eu. postmaster.likarum.eu. ( 2011122603 21600 3600 604800 86400 ) IN NS ks34682.kimsufi.com. IN NS ns.kimsufi.com. IN MX 10 mail.likarum.eu. IN A 213.251.174.72 www IN A 213.251.174.72 mail IN A 213.251.174.72 smtp IN A 213.251.174.72 pop IN A 213.251.174.72 pop3 IN A 213.251.174.72 imap IN A 213.251.174.72 sql IN A 213.251.174.72 mysql IN A 213.251.174.72 vetements IN A 213.251.174.72 likarum.eu IN TXT "v=spf1 a ~all mx ~all ptr:ovh.net ~all" webmail IN A 213.251.174.72 $include /etc/named/Klikarum.eu.zsk.key $include /etc/named/Klikarum.eu.ksk.key Wir signieren die Zone mit dem Befehl "dnssec-signzone -eYYYYMMDDHHMMSS -p -t -g -k Kmondomaine.eu.ksk.key -o meine_domain.eu die-datei-meiner-dns-zone Kmeine_domain.zsk.key". Der Wert YYYYMMDDHHMMSS bezeichnet das Ablaufdatum. Wenn die Zone am 4. Mätz 2012 um 04:20 Uhr ablaufen soll, dann lautet der Eintrag: 20120304042000 root@ks34682 named# dnssec-signzone -e20120330000000 -p -t -g -k Klikarum.eu.ksk.key -o likarum.eu likarum.eu Klikarum.eu.zsk.key Wir erhalten nun eine Datei mit folgendem Namen: die-datei-meiner-dns-zone.signed Wir überprüfen nun, dass named für DNSSEC korrekt konfiguriert ist. Dazu muss in der Konfigurationsdatei von named die Variable dnssec-enable auf yes gesetzt sein. Wenn dies nicht der Fall ist, dann editieren Sie Ihre Konfigurationsdatei mit nano, pico oder vim, um diese Variable hinzuzufügen oder zu ändern. Nun geben wir an, dass nicht mehr die ursprüngliche Zonen-Datei?, sondern deren verschlüsselte Version verwendet werden soll. In der Datei /etc/bind/named.conf ersetzen wir dazu: zone "likarum.eu" { type master; file "/etc/bind/mondomaine.eu"; }; Durch: zone "likarum.eu" { type master; file "/etc/bind/likarum.eu.signed"; }; Und starten dann den DNS Dienst neu: /etc/init.d/named restart Wir überprüfen das Vorhandensein der DNSSEC Zone mit dem Befehl "dig +cd +multi meine_domain.eu dnskey" root@ks34682 named# dig +cd +multi likarum.eu dnskey ;; Truncated, retrying in TCP mode. ; <<>> DiG 9.7.3-P3-RedHat-9.7.3-2.el6_1.P3.3 <<>> +cd +multi likarum.eu dnskey
;; Got answer:
;; QUESTION SECTION: ;likarum.eu. IN DNSKEY ;; ANSWER SECTION: likarum.eu. 86400 IN DNSKEY 256 3 8 ( AwEAAbb6xT+KjF3qqeWAkswdlpQ7QW9sm9d9y7vcRJPJ BUQdDXAtf6cRcJVI4Ql1GoCAhgrmV5/7ZbDrR3T54K+J WAogmyfVd27uz1FLnlYAZRcLOLqGp8HLztgpwJQdbC8a jeMx5yhYiH1ea8ZFHlumMwHJSrocgKyWyWGFZDiqRJ8A xgYFzJDhoSSOnN3lO73NvaOQQnb7wT1BDHSuk+cc5ISS XclyUUR0WKSeUl5LpGYgY8h4du01Da4z8gT3cS7ftIBD 7cjh0Fl6A+ADNCTiKQqD3j6f9CVCQ0uq87rPez6kyQZP /pr3TNc6Fgv7L6SpkBR0luQYiVdlz7u77+KdnuM= ) ; key id = 2184 likarum.eu. 86400 IN DNSKEY 257 3 8 ( AwEAAabIfR/5YyblLfcTWSRat0e6LvzAYQ/EqHkvixAf +/1LoEf/dVr0UPqTTLkhcYM5dIxIT9k35GS51TimTuis HINBV7TdIy9rCtA4Qf2ih5JJ+M1vsd6HAQjJAFRlJeYV lsWATet4IU9Zoy0PnU+ksJTdbyj3vlC0TEz5QyaI9N1m DNVJkuTXuSlgcm6Rx2DVpOI9/cPtQWRYkk3EH4yXxTNR 7jVTF1eRVL4T1orW2DmZPfh+qOmNVL2Dg0gXTlbksHjG xlZ4nHDzf4KzFxh9skJcVNBUzK/RacsLZyOzT3UAidJA 8gUOtEriO821mf+XmOhEkcAekj6ARjpCwEk+uv0= ) ; key id = 10954
Wir haben jetzt eine funktionierende DNSSEC Zone, damit diese vollständig gesichert werden kann müssen wir nun noch den Fingerprint des KSK an die Registry übermitteln. Im OVH Manager wählen wir dazu die Domain aus, und dann Domain & DNS, DNSSEC, Änderung: Wir kommen dann auf die Seite zur Änderung des DS der Domain mondomaine.eu: ![]() Nun müssen nur noch die verschiedenen Felder ausgefüllt werden (ID, Flag, Algoritmus und öffentlicher Schlüssel). Diese Elemente sind alle in Ihrem öffentlichen KSK Schlüssel vorhanden. In unserem Beispiel: root@ks34682 named# cat Klikarum.eu.ksk.key ; This is a key-signing key, keyid 10954, for likarum.eu.
likarum.eu. IN DNSKEY 257 3 8 AwEAAabIfR/5YyblLfcTWSRat0e6LvzAYQ/EqHkvixAf+/1LoEf/dVr0 UPqTTLkhcYM5dIxIT9k35GS51TimTuisHINBV7TdIy9rCtA4Qf2ih5JJ +M1vsd6HAQjJAFRlJeYVlsWATet4IU9Zoy0PnU+ksJTdbyj3vlC0TEz5 QyaI9N1mDNVJkuTXuSlgcm6Rx2DVpOI9/cPtQWRYkk3EH4yXxTNR7jVT F1eRVL4T1orW2DmZPfh+qOmNVL2Dg0gXTlbksHjGxlZ4nHDzf4KzFxh9 skJcVNBUzK/RacsLZyOzT3UAidJA8gUOtEriO821mf+XmOhEkcAekj6A RjpCwEk+uv0= Die verschiedenen Angaben sind also: ID: 10954 Flag: 257 Algoritmus: 8 Schlüssel: AwEAAabIfR/5YyblLfcTWSRat0e6LvzAYQ/EqHkvixAf+/1LoEf/dVr0 UPqTTLkhcYM5dIxIT9k35GS51TimTuisHINBV7TdIy9rCtA4Qf2ih5JJ +M1vsd6HAQjJAFRlJeYVlsWATet4IU9Zoy0PnU+ksJTdbyj3vlC0TEz5 QyaI9N1mDNVJkuTXuSlgcm6Rx2DVpOI9/cPtQWRYkk3EH4yXxTNR7jVT F1eRVL4T1orW2DmZPfh+qOmNVL2Dg0gXTlbksHjGxlZ4nHDzf4KzFxh9 skJcVNBUzK/RacsLZyOzT3UAidJA8gUOtEriO821mf+XmOhEkcAekj6A RjpCwEk+uv0= Sobald die Angaben bestätigt wurden generiert OVH den Fingerprint und überträgt diesen an die Registry. Es dauert im Schnitt etwa 72 Stunden, bis die DS Einträge in der Root-Zone verfügbar sind. Sie wissen nun, wie Sie Ihre Schlüssel verwalten, Ihre Zone signieren und Ihre Schlüssel an die Registry übermitteln können. Während eine klassische DNS Zone statisch ist und kaum Eingriffe benötigt, muss eine DNSSEC Zone erneuert werden, wenn daran Änderungen vorgenommen werden. Ausserdem sollte sie auch regelmässig erneuert werden, um einen möglichst optimalen Sicherheitslevel zu erhalten. In diesem Fall müssen Sie: - Ihren SOA Eintrag updaten - Ihre Zone erneut signieren (dnssec-signzone...) In diesem Fall müssen Sie: - Ihren SOA Eintrag updaten - Ihre Zone mit dem Argument für den gewünschten Zeitraum erneut signieren (dnssec-signzone -eJJJJMMTTSSMMSS...) ACHTUNG: Sie müssen die alten Schlüssel für einen gewissen Zeitraum aufheben, bevor Sie diese endgültig löschen. Wir empfehlen 10 Tage. In diesem Fall müssen Sie: - Einen neuen ZSK generieren - Ihre neuen Schlüssel hinzufügen - Ihren SOA Eintrag updaten - Ihre Zone erneut signieren (dnssec-signzone...) ACHTUNG: Sie müssen die alten Schlüssel für einen gewissen Zeitraum aufheben, bevor Sie diese endgültig löschen. Wir empfehlen 10 Tage. In diesem Fall müssen Sie: - Neue KSK und ZSK generieren - Ihre neuen Schlüssel hinzufügen - Ihren SOA Eintrag updaten - Ihre Zone erneut signieren (dnssec-signzone...) - Die Root-Zone? "rekonfigurieren" |