In dieser Schritt-für-Schritt-Anleitung installieren wir einen DHCP-Server mit der Open-Source-Software KEA auf einem Linux-Hostsystem mit Ubuntu 22.04 oder alternativ Debian 11. Ich zeige euch, wie wir in wenigen Schritten einen skalierbaren und robusten DHCP-Server im Netzwerk implementieren können.
Dank der Open-Source-Software KEA sind die Installation und der Betrieb eines eigenen DHCP-Servers auf einem Linux-basierten System problemlos möglich. Nach dem Installationsprozess implementieren wir eine Weboberfläche mit Stork. Das ermöglicht es uns, den DHCP-Server im Webbrowser zu überwachen.
Was hat ein DHCP–Server für Aufgaben?
DHCP steht für Dynamic Host Configuration Protocol. Die Aufgabe des Servers ist es, Computern, Smartphones und allen Geräten im Netzwerk automatisch eine IPv4- und/oder eine IPv6-Adresse (TCP/IP) zur Verfügung zu stellen. Ohne einen DHCP-Server müssten wir jedes einzelne Gerät im Netzwerk manuell konfigurieren. Würden wir dies nicht tun, könnte der Computer oder das netzwerkfähige Gerät nicht mit dem LAN oder Internet kommunizieren.
Eine IP-Adresse wird immer für einen bestimmten Zeitraum ausgeliehen. In der Informationstechnik sprechen wir von einer Lease-Time. Morgen könnte dieselbe IP-Adresse also ein anderes Gerät beziehen. Daher kommt auch die Namensgebung „Dynamisch“ zustande. Weiter vereinfacht der DHCP-Dienst das IP-Adressen-Management. So wird unter anderem automatisch verhindert, dass dieselbe IP-Adresse doppelt vergeben wird, was bei einer eigenständigen Konfiguration schnell passieren kann und zu Fehlern im Netzwerk führt.
Neben der lokalen IP-Adresse werden dem Client (Computer/Endgerät) alle für das Netzwerk notwendigen Informationen und Parameter zugewiesen. Dazu zählen z. B. die folgenden Einträge:
- Wer ist in diesem Netzwerk der zuständige DNS-Server?
- Welche IP-Adresse hat das Gateway? (Das Tor zum Internet)
- Zuweisung einer Subnetzmaske
Inhaltsverzeichnis: Installationsanleitung für den Open-Source DHCP-Server KEA unter Linux
Was wird für die Installation von KEA (DHCP-Server) unter Linux benötigt?
- Du benötigst ein Host mit installiertem Linux-Debian 11 oder Linux-Ubuntu 22.04 Distribution.
- Für die Installation der Software KEA ist eine Verbindung mit dem Internet erforderlich.
- Es wird ein Zugriff auf das Linux-System mit root-Berechtigungen benötigt.
- Optional: Eine zweite VM/Server für den Stork-Agenten (WebUI für KEA).
Vorbereitungen für die Installation (Systemaktualisierung)
Zunächst sollten wir die Paketquellen auf dem neusten Stand bringen. Melde dich am Terminal mit deinem Benutzerkonto an und gebe den Befehl für die Aktualisierung ein. Verwendest du Linux Ubuntu, kannst du für die Zeit der Installation auf das Root-Konto wechseln, da sonst jeder Befehl mit dem sudo-Prompt ausgeführt werden muss.
Als root Benutzer anmelden:
sudo su root
Paketquellen Aktualisieren:
apt update && apt upgrade -y
Schritt 1: Die Open-Source-Software KEA über das Terminal herunterladen und installieren (Linux DHCP-Server)
Wir verwenden den Open-Source DHCP-Server „ICS-DHCP“ genauer gesagt dessen Neuentwicklung KEA. Die Software „ISC“ hat im Dezember 2022 das Ende ihrer Lebenszeit erreicht und wird nicht weiter gepflegt. KEA ist ein moderner und modularer DHCP-Server, welcher sogar Cluster mit mehreren KEA-Servern für die Implementierung eines Failovers ermöglicht. Das setzt lediglich voraus, dass beide Server Zugriff auf dieselbe MySQL-Datenbank haben. Wir installieren zunächst die Abhängigkeiten (Pakete) für KEA auf unserem Linux-Hostsystem.
Notwendige Pakete und Abhängigkeiten für KEA installieren:
apt install wget libboost-all-dev openssl g++ libssl-dev liblog4cplus-dev liblog4cplus-2.0.5 make cmake -y
Sobald alle Pakete erfolgreich auf deinem Server installiert worden sind, laden wir die aktuellste Version von KEA direkt von der Webseite des Entwicklers herunter, da die GitHub-Version zum Zeitpunkt von dieser Installationsanleitung veraltet ist.
Hinweis: Überprüfe über diesen Link, ob zwischenzeitlich eine neuere Version von dem DHCP-Server KEA veröffentlicht wurde. Bitte ergänze die folgenden Befehle anschließend mit der neuen Versionsnummer.
Gebe den folgenden Befehl für den Download von KEA in das Linux-Terminal ein:
wget https://downloads.isc.org/isc/kea/2.3.4/kea-2.3.4.tar.gz
Entpacke das Archiv mit dem tar-Befehl:
tar -xvzf kea-2.3.4.tar.gz
Navigiere in das Verzeichnis von KEA:
cd kea-2.3.4
Führe das Skript für die Installation aus:
autoreconf --install
Beginne mit der automatischen Einrichtung:
./configure
Nach dem Abschluss der Konfiguration müssen die notwendigen Dateien aus dem C++ Code erstellt und das Python-Skript vorbereitet werden. Das funktioniert mit dem folgenden Befehl.
Mit der Kompilierung beginnen:
make
Hinweis: Dieser Vorgang kann einige Minuten bis Stunden Zeit in Anspruch nehmen. Je nach eingesetzter Hardware variiert dieser Schritt!
Sobald die Kompilierung erfolgreich durchlaufen wurde, gebe den folgenden Befehl ein, um die ausführbaren Kea-Dateien, Support-Dateien und die Dokumentation auf deinem Linux-Server zu installieren:
make install
Wechsel in das folgende Verzeichnis und führe die Cache-Konfigurationsdatei für das Betriebssystem mit root-Berechtigungen aus.
In das Bibliotheken-Verzeichnis wechseln:
cd /usr/local/lib
Befehl ausführen:
ldconfig
Die Open-Source-Software KEA ist jetzt installiert.
Schritt 2: DHCP-Server KEA konfigurieren und starten
Im Verzeichnis /usr/local/etc/kea können wir die Konfigurationen am DHCP-Server vornehmen. Verwenden wir z. B. den ls Befehl, erhalten wir eine Ausgabe über die einzelnen Konfigurationsdateien.
Wir werden in dieser Anleitung keine Konfigurationen vornehmen. Zeigen möchte ich euch die Möglichkeit aber trotzdem. Öffnet eine Standardkonfigurationsdatei mit nano oder vim, um z. B. Schnittstellen, Subnetze und IP-Netzwerke festzulegen. Entferne dazu einfach die Kommentarfunktion einer gewünschten Option und orientiere dich an den Hilfestellungen innerhalb der Datei. Wir verwenden den DHCP-Server KEA vorerst Out-of-the-Box.
DHCP-Server KEA starten:
Um eine Konfigurationsdatei mit KEA sofort zu starten, können wir den folgenden Befehl verwenden:
/usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
Änderungen an den Konfigurationsdateien können auch während des Betriebs vorgenommen werden und sind sofort wirksam, ohne den KEA-Server neu starten zu müssen. Vorzugsweise wird KEA mit den keactrl-Befehlen gestartet, da es alle Konfigurationen und den Agenten gleichzeitig ausführt:
KEA starten:
keactrl start
KEA Status überprüfen:
keactrl status
KEA stoppen:
keactrl stop
Die Installation von KEA (DHCP-Server) unter Linux ist abgeschlossen
Kea wurde jetzt erfolgreich auf Linux Ubuntu/Debian installiert. Die Konfigurationsmöglichkeiten sind sehr umfangreich und immer individuell von der verwendeten Netzwerk-Infrastruktur abhängig. Verwende die offizielle Dokumentation vom Herausgeber, um KEA auf Wunsch weiter einzurichten: https://kea.readthedocs.io/en/kea-2.2.0/arm/dhcp4-srv.html
Schritt 3: Installation einer grafischen Oberfläche für KEA mit Stork (Web-GUI)
Wir installieren mit Stork eine grafische Oberfläche für den DHCP-Server unter Linux, damit wir die KEA-Instanzen über ein Dashboard überwachen und Konfigurationen direkt im Browser vornehmen können. Das erleichtert uns die Administration und das Monitoring erheblich.
Stork wird für gewöhnlich auf eine eigene VM/Container mit einer PostgreSQL-Datenbank installiert und ausgeführt. Die Agenten werden dann mit dem Stork-Server über sogenannte Server-Tokens verbunden. Wie das funktioniert, zeige ich in diesem Abschnitt meiner Schritt-für-Schritt-Anleitung.
Wechsel für die Durchführung der Installation auf dem Benutzer „root“:
sudo su root
Zunächst melden wir uns am Terminal z. B. über SSH am Server an und führen eine Aktualisierung der Paketquellen durch.
Aktualisierungen durchführen:
apt update && apt upgrade -y
Wir installieren die Datenbank „PostgreSQL“ aus dem Standard-Repository in der stabilen Version:
apt install postgresql postgresql-contrib -y
Sobald die Installation erfolgreich durchlaufen ist, wechseln wir auf den Datenbankbenutzer „postgres“, um die Datenbank für Stork zu erstellen.
Auf den Benutzer „postgres“ wechseln:
su postgres
Als Nächstes betreten wir den Datenbankmodus und legen einen neuen Benutzer mit dem Namen „Stork“ an. Ergänze die Eingabe ‚Passwort‘ mit einem sicheren Passwort. Im Anschluss erstellen wir eine neue Datenbank und räumen den soeben angelegten Datenbank-Benutzer alle Rechte (Privilegien) ein.
Datenbank-Konsole öffnen:
psql postgres
Die Datenbank für Stork erstellen und Konfigurationen vornehmen:
CREATE USER stork WITH PASSWORD 'PASSWORT';
CREATE DATABASE stork;
GRANT ALL PRIVILEGES ON DATABASE stork TO stork;
\c stork
create extension pgcrypto;
Die Datenbank wurde erfolgreich angelegt. Verlasse den Datenbankmodus wieder:
exit;
Wechsel jetzt wieder auf den Benutzer mit Root-Berechtigungen. Führe den folgenden Befehl auf deinem Terminal aus, um das offizielle Repository von Stork einzubinden:
curl -1sLf 'https://dl.cloudsmith.io/public/isc/stork/cfg/setup/bash.deb.sh' | bash
Der Stork-Server kann jetzt installiert werden:
apt install isc-stork-server
Jetzt müssen wir die zuvor angelegte Datenbank in die Konfigurationsdatei einpflegen. Öffne die .env-Datei und editiere die folgenden Einträge. Entferne, wie im Beispiel ersichtlich, die Kommentare vor den Zeilen.
Stork-Server Datenbank-Zugangsdaten in die Konfigurationsdatei einpflegen:
nano /etc/stork/server.env
Hinweis: Das Passwort wurde von dir, während der Erstellung der Datenbank, vergeben. Falls du andere Daten verwendet hast, müssen die Werte dementsprechend angepasst werden.
STORK_DATABASE_HOST=localhost
STORK_DATABASE_PORT=5432
STORK_DATABASE_NAME=stork
STORK_DATABASE_USER_NAME=stork
STORK_DATABASE_PASSWORD=PASSWORT
Speichere die Änderungen ab [STRG +S] und verlasse die Datei wieder [STRG +X].
Installation abgeschlossen! Den automatischen Start aktivieren:
Der Stork-Server für KEA ist an diesem Punkt erfolgreich installiert worden. Jetzt können wir noch den Befehl dafür eingeben, dass der Dienst nach einem Neustart automatisch wieder startet:
systemctl enable isc-stork-server
Starte den Stork-Server mit dem folgenden Befehl:
systemctl start isc-stork-server
Schritt 4: Installation von DHCP-Server KEA und dem Dashboard Stork unter Linux abgeschlossen. Das WebUI über den Browser aufrufen
Jetzt können wir die IP-Adresse vom Stork-Server in die URL-Leiste unseres Webbrowsers eingeben, um mit der Einrichtung über die Weboberfläche fortzufahren. Unser DHCP-Server muss noch verbunden werden. Die Webanwendung lauscht auf dem Port 8080.
Das Dashboard im Webbrowser öffnen (Beispiel-IP-Adresse):
http://192.168.178.188:8080
Die Default-Log-in-Zugangsdaten für das Stork-Dashboard lauten wie folgt:
Benutzer: admin
Passwort: admin
Hast du dich erfolgreich auf die Weboberfläche anmelden können?
Dann empfiehlt es sich zunächst, das Passwort vom Admin-Benutzerkonto zu ändern. Navigiere dafür in der Menüleiste auf die Schaltfläche „Configuration > Users“.
Klicke das Konto „Admin“ an und wähle die Schaltfläche „Edit“. Ändere das Passwort und trage eine gültige E-Mail-Adresse ein. Bestätige die Änderungen über den blauen Button mit der Aufschrift „Save“.
Schritt 5: Stork-Agent installieren und mit dem DHCP-Server KEA verbinden
Im letzten Schritt dieser Anleitung installieren wir den Stork-Agenten. Navigiere mit der Maus auf den Reiter „Services“ und klicke auf die Kategorie „Machines“.
Aktuell sind natürlich noch keine KEA-Instanzen mit dem Stork-Server verbunden. Das lässt sich aber in wenigen Schritten erledigen. Klicke dafür auf die blaue Schaltfläche „How to Install Agent on New Machine“.
Jetzt öffnet sich ein Fenster mit Befehlen, die wir auf unseren KEA-Server eingeben müssen.
Verbinde dich z. B. über SSH mit deinem KEA-DHCP-Server und beginne mit der Installation des Stork-Agenten. Sollte der wget-Befehl eine Fehlermeldung (Error 500 Internal Server Error) auf deinem Terminal anzeigen, müssen wir die Installation manuell vornehmen.
Das Repository für die Installation einbinden:
curl -1sLf 'https://dl.cloudsmith.io/public/isc/stork/cfg/setup/bash.deb.sh' | sudo bash
Führe den folgenden Befehl für die Installation des Stork-Agenten aus:
apt install isc-stork-agent
Starte den Agentendienst mit den folgenden Befehlen:
systemctl enable isc-stork-agent
systemctl start isc-stork-agent
Wichtig: Ergänze die IP-Adresse im nächsten Befehl mit der von deinem Stork-Server!
Verbinde den KEA-Server (Stork-Agenten) mit deinem Stork-Server:
stork-agent -s /bin/sh -c 'stork-agent register -u http://192.168.178.187:8080'
Sobald der Befehl abgesendet wurde, sind drei Eingaben erforderlich:
- Kopiere den Server-Token aus der Weboberfläche vom Stork-Server und füge ihn in das Terminal ein.
- Gebe die IP-Adresse vom KEA-Server oder den FQDN [kea] ein: 192.168.178.187
- Trage den Port 8080 ein
Überprüfe anschließend im Dashboard vom Stork-Server, ob es eine nicht autorisierte Anfrage eines Agenten gibt. Dieser muss noch manuell genehmigt werden.
Installation eines DHCP-Servers mit KEA unter Linux Debian/Ubuntu abgeschlossen
Der Open-Source-DHCP-Server KEA ist eine interessante und leistungsstarke Software für Unternehmen. Ob sich der Aufwand der Konfiguration für den privaten Gebrauch lohnt, ich denke, da gibt es bessere Lösungen, die nicht ganz so viel Einlesung in die Konfiguration benötigen. Wenn der Server läuft, dann hat man eine hervorragende Lösung installiert.
Mit Stork erhalten wir ein wunderbares Dashboard für den DHCP-Server. Über die Weboberfläche erlaubt Stork eine Anbindung zu den Monitoring-Werkzeugen Grafana oder Prometheus, was sicherlich interessant für den einen oder anderen sein dürfte. Damit ist die Installation von KEA unter Linux abgeschossen.
sudo su stork-agent -s /bin/sh -c ’stork-agent register -u http://192.168.178.187:8080‚
Hallo Alexander,
bei dem Punkt sudo apt install isc-stork-server bekomme ich die folgende Fehlermeldung:
root@raspberrypi4:/# sudo apt install isc-stork-server
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
E: Unable to locate package isc-stork-server.
Ich habe alles entsprechend deiner Anleitung durchgeführt .
VG
Arno
Hallo,
gibt es hierfür schon eine Antwort? Ich habe auch das Problem das nach dem Befehl (install isc-stork-server), das Paket nicht gefunden wird:
root@raspberrypi:/home/pi-dhcp# apt install isc-stork-server
Paketlisten werden gelesen… Fertig
Abhängigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
E: Paket isc-stork-server kann nicht gefunden werden.
Somit kann ich den Stork-Server leider nicht weiter installieren oder konfigurieren.
Bin absoluter Linux Anfänger …
Die Installation oben ist für Debian/Ubuntu. Das Repository ist für den Pi ein anderes.
Hallo,
nach dem Server error 500 habe ich versucht den agent manuell zu installieren. Den Server-Token kopiert und verscuht einzufügen, aber das klappt nicht. nach IP und Port kommt immer der Fehler „Provided server token is wrong“ Was muss ich da tun.
Anmerkung. Der Befehl muss lauten:
su stork-agent -s /bin/sh -c ’stork-agent register -u http://192.168.178.187:8080‚