Benutzerspezifische Werkzeuge
 

DNS Manager

ScoutNet bietet den Abteilungen für ihre Webseite kostenlos eine 3rd Level Domain unter scout.ch und pfadi.ch an. Ein Werkzeug soll dem Webmaster helfen dies zu verwalten.

Ziel

Der Webmaster soll auf einer Webseite, ähnlich wie bei Switch seine Domain registrieren können. Beispielsweise abteilungXY.scout.ch. Nur er hat dann Zugriff auf die Einträge innerhalb seiner Domain und kann diese Einträge auch online erstellen und verwalten oder an andere Nameserver delegieren, z.B. bei seinem Hoster. Das Projekt beschränkt sich nur auf DNS und wird selber also kein Hosting anbieten.

Technische Überlegungen

Bezeichnen wir mal den Webmaster oder die Abteilung als Kunden.

Es ist wichtig, dass der Kunde sich auf dem System authentifiziert, nur auf seine DNS Daten Zugriff hat und keine fremde Daten verändern kann.

Dazu sind folgende Informationen nötig:

  • Domainname, z.B. abteilungXY.scout.ch + SOA Information
  • Login, damit können mehrere Domainnamen einem Kunden zugewiesen werden
  • DNS Update Key pro Kunde.
  • DNSSEC Key pro Zone/Domainnamen.

Die einzelnen DNS RR sind nicht Bestandteil der VerwaltungsDB.

DNS Technik

Software-Basis: ISC Bind

Alle Kunden Domains sind als eigene Zonefiles definiert, ausser die Zone ist delegiert. Der DNS Update Key regelt die Berechtigung zum Updaten einer Zone per Dynamic DNS Update Funktionalität. Der DNS Update Key ist daher bei allen Domains eines Kunden derselbe.

Dadurch dass der Kunde seinen DNS Update Key kennt, kann er auch von aussen mit selber gestrickten oder bestehenden Tools seine Zone verwalten und sogar mit Router die DNS Updates per Key unterstützen seine Zone bei IP Änderungen automatisch anpassen lassen (dyndns).

Der Kunde kann dadurch auch wirklich jeden DNS RR erstellen der möglich ist.

Durch Dynamic Updates ist auch sichergestellt, dass dynamisch erstellte Records automatisch per DNSSEC signiert werden.

Beim Erstellen eines Zonenfiles ist jedoch ein Schreiben von Config Files unumgänglich. Dies ist die Aufgabe des DNS Manager Webgui, also dieses Projektes.

DNS Manager WebGUI + Engine

Die Erstellung einer Zone müsste folgendermassen ablaufen:

Zonenfile bei uns:

  • DNS Update Key erstellen.
  • Zonenfile mit wenigen vordefinierten Einträgen erstellen.
  • DNSSEC Key erstellen und Zonenfile signieren.
  • Zonenfile in Config erstellen mit berechtigtem Update Key erstellen.
  • DS Records mit DNSSEC Key per Master Update Key in 'root' Zone erstellen.
  • Ähnliches Vorgehen auf Secondary?
  • rndc reload
Zonenfile extern (Delegation):
  • NS Records per Master Update Key in 'root' Zone erstellen.
  • DS Records mit DNSSEC Key des Kunden per Master Update Key in 'root' Zone erstellen. (Wenn Kunde DNSSEC Wünscht, was wir hoffen)
  • Kein Reload nötig, da alles dynamisch.

Was und wie kann der Kunde nun seine Einträge editieren?

Dies ist nun eigentlich recht trivial.

Der DNS Update Key ist auch Zonentransfer berechtigt. Der Client (in userem Fall das GUI) macht mit diesem Key einen Zonentransfer aller Daten (sprich RR, Ressource Records) im Zonenfile des Kunden und bereitet diese Graphisch ein wenig auf, z.B. mit Radio Buttons um einzelne RR zu löschen und die Möglichkeit gewisse Records (Sagen wir mal DS, A, AAAA, NS, MX, TXT, LOC, SRV, CNAME) zu erstellen. Sowohl löschen wie auch erstellen geschieht mit dem DNS Update Key des Kunden. Dies stellt folgendes sicher:

  • Es ist ausgeschlossen fremde DNS Daten zu manipulieren.
  • Korrekte DNSSEC Signaturen werden sichergestellt.
  • DNS Update generiert einen Error, wenn der Kunde falsche Daten sendet und dies nicht abgefangen würde, ohne den DNS Server abzuschiessen.

Stolpersteine, zu Beachten:

  • CNAME + Other data ist nicht gültig => DNS Update geht schief.
  • Bei Delegieren der Zone an andere Nameserver darf es das Zonenfile nicht mehr geben, die Delegation passiert mit NS und DS Recoreds in der 'root' zone.
  • Wenn der Kunde eigene DNS Server mit DNSSEC betreibt, muss er auch die eigenen DS Records in unserer DB hilterlegen können.
  • DNSSEC Key Rollover und periodisches neusignieren der Zonenfiles (das wird wohl die grösste Heausforderung, oder wir machen die Keys einfach sehr lange gültig).

 

SCOUTNET Schweiz

Sonnenbergstrasse 78
9030 Abtwil SG

Tel. +41 71 511 44 33

Email: portal@scout.ch