DNS

Dynamischer DNS-LAMP-Server

Für interne Infrastruktur benötigten wir eine zuverlässige und simple Möglichkeit für dynamische DNS-Updates.

Wir haben weder einen DDNS-Provider, noch eine existierende Lösung zum Selbsthosten gefunden, die alle unsere Anforderungen (unter anderem mehrfache Records, TLS) erfüllten. Da wir sensiblere Daten ohnehin lieber selbst hosten, habe ich daher eine vor einigen Jahren schnell als „Provisorium für immer“ zusammengeschriebene Werkzeugsammlung objektorientiert überarbeitet.

Bind testen und in Betrieb nehmen

Bevor unser DNS-Server den Betrieb aufnehmen kann, müssen wir sicherstellen, daß nicht versehentlich die falsche Version aufgerufen wird. Dazu ergänzen wir die globale Pfad-Umgebungsvariable in der Datei /etc/profile:

cp /etc/profile /etc/profile.bak
sed 's#^\(export PATH\)$#PATH="/usr/local/bind9/sbin:/usr/local/bind9/bin:$PATH"\n\1#'\
  /etc/profile > /tmp/profile.tmp
mv -f /tmp/profile.tmp /etc/profile

Bind9 installieren: Vorbereitungen

Vorbereitung

Auf wessen Pi noch kein Bind existiert, der installiert sich nun trotzdem erst die „offizielle“ Debian-Version. Auf diese Weise lösen wir fast alle Abhängigkeiten ohne großen Aufwand auf und erhalten außerdem ein Init-Skript und weitere Konfigurationen, die wir später nur noch geringfügig für unsere eigene Version anpassen müssen.

a) Bind noch nicht installiert

Wer Bind bereits installiert hat, fährt mit dem nächsten Abschnitt fort. Alle anderen gehen nun an die Konsole:

DNS-Einstellungen

Egal, ob wir Bind als Backend nutzen oder Sambas eingebauten DNS: Beide können mit Hilfe der RSAT konfiguriert werden. Das ist weitgehend selbsterklärend ist, daher richten wir hier nur einen Beispiel-Eintrag ein. Zur Konfiguration wird die DNS-Konsole aus dem Verwaltungsordner (Systemsteuerung > Verwaltung > DNS) geöffnet:

Bind9

Wer zu Beginn dieses Projekts bereits einen fertig konfigurierten Bind hat und diesen auch mit Samba weiter nutzen will, muss sicherstellen, dass er die richtige Version einsetzt und diese mit den richtigen Optionen kompiliert wurde:

named -V | grep gssapi

sollte ein Ergebnis auswerfen, in dem neben der Versionsnummer unter anderem

'--with-gssapi=/usr/include/gssapi'

und

'--with-dlopen=yes'

enthalten ist: