DNS Server mit LDAP Backend

Einleitung

Systeme, wie zum Beispiel ISPConfig, vereinfachen die Verwaltung von DNS-Einträgen ungemein. Jedoch möchte man nicht jedesmal den vollen Umfang dieser Lösung nutzen, sondern eigene Verwaltungstools zum einfachen Management der Netzwerkinfrastruktur nutzen.

Seit längerem arbeite ich an einer eigenen CMDB Lösung welche zum Einen den Bestand, die Topologie und damit die komplette IT-Dokumentation abdecken soll. Diverse Versuche mit I-DoIT, itop und OTRS zeigten, dass diese Softwarelösungen entweder zu komplex oder in ihren Open Source Editionen zu beschränkt waren.

Die grundlegendsten Dienste im Netzwerk sind die IP-Adressen und das DNS-Management. Mein Ziel ist es, diese Dienste auf einem zentralen System zu hosten und gleichzeitig auch die Möglichkeit zu generieren, eine Ausfallsicherheit per Konfiguration-Replikation zu erreichen.

Namensauflösung mit BIND und LDAP-Back-End

ISC DHCP und der ISC BIND haben beide die Möglichkeit ihre Konfiguration in einem LDAP-Verzeichnisdienst abzulegen. OpenLDAP wiederum hat eine einfach zu konfigurierende Replikationsmöglichkeit. Weiterhin können Tools wie UCarp eine Redundanz auf Ebene der IP-Adressen bereitstellen.

Die Kombination besteht hierbei aus dem DNS Server BIND in der Version 9.10.3, dem LDAP Server OpenLDAP in der Version 2.4.47 sowie dem dem LDAP Back-End Plugin für den BIND Server bind9-dyndb-ldap in der Version 10.1-1.

Alle Pakete sind in der aktuellen Debian 9 Stretch Version enthalten.‘
In diesem Tutorial gehe ich die Installation Schritt für Schritt durch.

Installation der Software

Zu aller erst wird das System auf den aktuellen Stand gebracht:

Shell

Anschließend wird der OpenLDAP Server installiert:

Shell

Unter Debian Stretch wird bei der Installation leider nicht alles abgefragt, sodass nach der erfolgreichen Installation noch das neue Verzeichnis grundlegend vorbereitet werden muss.

Shell

Anschließend kann man sich den aktuellen Inhalt des Verzeichnisses über den folgenden Befehl anzeigen lassen.

Shell

Das Verzeichnis ist nun grundlegend vorbereitet und verfügbar.

Schema-Erweiterung für die Aufnahme der DNS Konfiguration

Das Schema beschreibt die einzelnen Attribute und Klassen in welcher Daten im Verzeichnis gespeichert werden können.

Das BIND Plugin nutzt hierbei zusätzliche Konfigurationen, welche im Standardumfang des OpenLDAP Servers nicht enthalten sind.

Leider ist die Beispieldatei unvollständig und nicht für den sofortigen Einsatz geeignet. Um die Datei anzupassen sind folgende Befehle notwendig:

Shell

Damit liegt die Datei schonmal dort, wo sie später benötigt wird.
Nun muss per Editor zwei kleine Änderungen durchgeführt werden.

Shell

Der Eintrag in Zeile 35 muss auskommentiert und gleichzeitig müssen die Einträge in Zeile 40 und 41 aktiviert werden.

Plain Text
/etc/ldap/schema/bind9-dyndb-ldap.ldif

Das der Standardumfang des OpenLDAP Servers das COSINE-Schema bereits enthält müssen die Einträge von Zeile 44 bis 71 auskommentiert werden.

Die Urheber des Schema-Files haben jedoch einen sehr wichtigen Part vergessen. Dieser muss nun händisch ab Zeile 366 eingetragen werden:

Plain Text
/etc/ldap/schema/bind9-dyndb-ldap.ldif

Zusätzlich muss man noch in zwei Blöcken der Datei diverse Zeilenumbrüche entfernen:

Plain Text
/etc/ldap/schema/bind9-dyndb-ldap.ldif

Anschließend speichert und schließt man den Editor.

Da das Layout der Datei nicht auf den OpenLDAP 2.4 ausgelegt ist, müssen noch folgende Ersetzungen per sed-Befehl umgesetzt werden:

Shell

Nun ist die Datei bereit um in das System importiert zu werden.

Shell

Damit ist das Schema im OpenLDAP Server aktualisiert und kann für den BIND geeignete Einträge verwalten!

To be continued