Ubuntu: Kea DHCP und Stork installieren

Inhalt

In diesem Tutorial werden wir uns ansehen, wie man den ISC Kea DHCP-Server und das Stork-Dashboard installiert, das eine Weboberfläche zur Anzeige und Verwaltung der DHCP- und Bind9-Dienste bietet.

Im Tutorial: Ubuntu: Installation und Konfiguration eines DHCP-Servers mit KEA – isc-kea habe ich mich mit der Installation und Konfiguration eines DHCP-Servers befasst; daher werde ich mich in diesem Tutorial hauptsächlich mit der Installation und Konfiguration von Stork beschäftigen.

Vorstellung von Stork

Stork ist ein Webdienst, der über eine Website ein Dashboard zur Überwachung und Verwaltung (in der kostenpflichtigen Version) der Dienste DHCP Kea und DNS Bind9 bereitstellt.

Es gibt zwei Versionen:

  • Kostenlos: Bietet lediglich einen Überwachungszugriff auf den oder die DHCP- und Bind9-Server sowie die Möglichkeit, nach Adresszuweisungen zu suchen.
  • Kostenpflichtig: Ermöglicht die Konfiguration des oder der DHCP-Server über die Weboberfläche.

Stork kann auf dem DHCP-Server oder auf einem Remote-Server installiert werden; die Kommunikation erfolgt über einen Agenten.

Installation von ICS-KEA

Bevor wir Stork installieren, werden wir zunächst die KEA-DHCP-Dienste installieren. In dieser Anleitung werde ich die offiziellen Repositories verwenden, um eine aktuelle Version zu erhalten.

Zunächst fügen wir die KEA-Repositories hinzu:

curl -1sLf 'https://dl.cloudsmith.io/public/isc/kea-2-4/setup.deb.sh' | sudo -E bash

Die Paketliste aktualisieren:

sudo apt update

Installieren der ICS-KEA-DHCP-Dienste:

sudo apt-get install isc-kea -y

Für die Grundkonfiguration des DHCP-Dienstes verweise ich Sie auf die Anleitung: Ubuntu: Installation und Konfiguration eines DHCP-Servers mit KEA – isc-kea

Für die Integration mit Stork müssen einige Änderungen vorgenommen werden, auf die wir im Folgenden eingehen werden.

Stork-Installation

Damit Stork funktioniert, benötigt es eine Datenbank; ich habe mich hier für PostgreSQL entschieden.

Zunächst installieren wir PostgreSQL:

sudo apt-get install postgresql -y

Überprüfen Sie, ob PostgreSQL gestartet ist:

sudo systemctl status postgresql

Stork-Repos hinzufügen:

curl -1sLf 'https://dl.cloudsmith.io/public/isc/stork/cfg/setup/bash.deb.sh' | sudo bash

Den Stork-Server installieren:

sudo apt-get install isc-stork-server -y

Wir werden nun die Datenbank für Stork anlegen und dazu ein Dienstprogramm unter dem Benutzer „postgres“ verwenden.

Benutzer wechseln:

sudo su - postgres

Die Erstellung der Datenbank starten:

stork-tool db-create --db-name stork --db-user stork-server

Im Gegenzug liefert Ihnen der Befehl die Konfigurationsdaten der Datenbank. Notieren Sie sich diese, da wir sie zur Konfiguration des Stork-Servers benötigen.

Zurück zum aktuellen Benutzer.

Bearbeiten Sie die Datei /etc/stork/server.env, um die Verbindungsdaten zur PostgreSQL-Datenbank zu konfigurieren.

sudo nano /etc/stork/server.env

Ändern Sie die Variablen STORK_DATABASE_NAME, STORK_DATABASE_USER_NAME und STORK_DATABASE_PASSWORD mit den Angaben, die bei der Erstellung der Datenbank zurückgegeben wurden.

Die Konfiguration des Stork-Servers ist abgeschlossen.

Den Dienst aktivieren, damit er automatisch gestartet wird:

sudo systemctl enable isc-stork-server

Den Dienst starten;

sudo systemctl start isc-stork-server

Überprüfen Sie, ob der Stork-Server läuft:

sudo systemctl status isc-stork-server

Rufen Sie in einem Internetbrowser die folgende Adresse auf: http://ip-server:8080

Die Standard-Anmeldedaten lauten admin/admin

Wir gelangen zum Dashboard, das derzeit leer ist, da noch keine DHCP- und DNS-Server konfiguriert sind.

Stork dashbord

Machen Sie sich zunächst mit der Benutzeroberfläche vertraut – hier sind ein paar Screenshots.

Installation des Stork-Agenten

Nun werden wir den Stork-Agenten installieren, der die Kommunikation zwischen dem Stork-Server und den DHCP- und DNS-Servern ermöglicht.

Auch wenn Stork und der DHCP-Server auf demselben Server installiert sind, muss der Agent installiert werden.

Standardmäßig verwendet der Agent den Port 8080, der mit dem des Stork-Servers übereinstimmt. Daher muss der Port des Agenten geändert werden.

Stork-Agent installieren:

sudo apt-get install isc-stork-agent -y

Befinden sich der Agent und der Stork-Server auf demselben Rechner, ändern wir den Port des Agenten. Bearbeiten Sie dazu die Datei /etc/stork/agent.env.

sudo nano /etc/stork/agent.env

Die Variable STORK_AGENT_PORT ändern:

Automatischen Start des Agenten aktivieren:

sudo systemctl enable isc-stork-agent

Agent starten:

sudo systemctl start isc-stork-agent

Überprüfen Sie, ob der Dienst des Agenten ordnungsgemäß gestartet wurde:

sudo systemctl status isc-stork-agent

Den Stork-Agenten auf dem Stork-Server registrieren

Um den Agenten zu registrieren, verwenden Sie den folgenden Befehl:

sudo su stork-agent -s /bin/sh -c 'stork-agent register --server-url http://ip-stork-server:8080'

Wenn der Agent auf demselben Server installiert ist, geben Sie die Portnummer ein, sobald Sie dazu aufgefordert werden.

Rufen Sie die Weboberfläche des Stork-Servers unter „Services / Machines“ auf, zeigen Sie die nicht autorisierten Agenten an, indem Sie auf „Unauthorized“ 1 klicken, klicken Sie auf das Aktions-Menü 2 und anschließend auf „Autorize“ 3 .

Bitte warten Sie einige Minuten, bis die Informationen vorliegen.

Nach dem Aktualisieren der Seite sollte das DHCP-Menü angezeigt werden und das Dashboard sollte die Informationen zum DHCP-Server anzeigen.

Hier sind einige Screenshots:

Wenn Sie Ausdehnungen konfiguriert haben, sollten die entsprechenden Informationen in Stork angezeigt werden.

Konfiguration des DHCP-Servers für Stork

Zum Abschluss dieses Tutorials werden wir uns ansehen, wie der DHCP-Server so konfiguriert wird, dass sowohl die statistischen Daten als auch die DHCP-Leases an Stork übermittelt werden.

Der Einfachheit halber hier die in diesem Tutorial verwendete Konfiguration:

{
        "Dhcp4": {

                "hooks-libraries": [
                {
                       "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_stat_cmds.so"
                },
                {
                       "library": "/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_lease_cmds.so"
                }
                ],


                "interfaces-config": {
                        "interfaces": [ "ens18" ]
                },

                "control-socket": {
                        "socket-type": "unix",
                        "socket-name": "/tmp/kea4-ctrl-socket"
                },

                "lease-database": {
                        "type": "memfile",
                        "persist": true,
                        "name": "/var/lib/kea/kea-leases4.csv",
                        "lfc-interval": 3600
                },

                "valid-lifetime": 600,
                "max-valid-lifetime": 7200,
   
                "subnet4": [
                        {
                                "id": 1,
                                "subnet": "10.99.99.0/24",

                                "pools": [
                                        {
                                                "pool": "10.99.99.120 - 10.99.99.130"
                                        }
                                ],
                                "option-data": [
                                        {
                                                "name": "routers",
                                                "data": "10.99.99.250"
                                        },
                                        {
                                                "name": "domain-name-servers",
                                                "data": "1.1.1.1, 8.8.8.8"
                                        },
                                        {
                                                "name": "domain-name",
                                                "data": "rdr-it.io"
                                        }
                                ]
                        }
                ]
        }
}

Im Vergleich zum ersten Tutorial müssen die Hooks in den Zeilen 4 bis 11 und der Abschnitt zu den DHCP-Leases (lease-database) in den Zeilen 23 bis 28 konfiguriert werden.


Sie wissen, wie man Stork mit den KEA-DHCP-Diensten installiert und verwendet.

In einem der nächsten Tutorials werden wir sehen, wie man Bind9 hinzufügt.

Romain Drouche

Romain Drouche

Systemarchitekt | MCSE: Core Infrastructure

Experte für IT-Infrastrukturen mit mehr als 15 Jahren Praxiserfahrung. Derzeit als Projektleiter für Systeme und Netzwerke sowie als Verantwortlicher für Informationssicherheit (SSI) tätig, setze ich meine Expertise für die Zuverlässigkeit und Sicherheit technologischer Umgebungen ein.

GHinM▶