01 Oktober 2019

Client-Zertifikate für Icinga2-API-Authentifizierung

Kategorien: HowTos
Tags: Icinga Icinga2 Monitoring

Um sich als Client gegenüber Icinga2 zu authentifizieren, werden zwei Möglichkeiten geboten. Zum einen existiert die Möglichkeit, sich mittels Nutzernamen und Passwort zu authentifizieren. Die andere Möglichkeit ist eine Authentifizierung mittels Client-Zertifikaten. Bei der automatisierten Abfrage der Icinga2-API ist die Einrichtung von Client-Zertifikaten dabei nicht nur sicherheitstechnisch von Vorteil, sondern auch in der Umsetzung auf Clientseite deutlich praktischer.

Leider bietet die offizielle Icinga2-Dokumentation zu dem genauen Vorgang der Zertifikatserstellung keine Beschreibung. Deswegen hier nun eine kurze Anleitung:

Nach der Installation von Icinga2 muss zunächst das API-feature aktiviert werden:

icinga2 feature enable api

Als Nächstes muss der Icinga2-node als Master konfiguriert werden, dies geschieht am leichtesten mit dem „node-wizard“-Programm:

icinga2 node wizard

Dabei erstellt Icinga2 die nötigen CA-Zertifikate mit denen die noch zu erstellenden Client-Zertifikate unterschrieben werden müssen. Nun wird das Client-Zertifikat erstellt:

icinga2 pki new-cert --cn <name> --key <name>.key --csr <name>.csr

Der Parameter cn steht dabei für den sogenannten common-name. Das ist der Name, anhand dessen in der Icinga2-Nutzerkonfiguration dem Nutzer das Nutzer-Zertifikat zugeordnet wird. In der Regel wird als common-name der FQDN verwendet. In diesem Szenario ist dieser Name allerdings frei wählbar. Alle anderen Namen können ebenfalls frei gewählt werden, es empfiehlt sich allerdings einen Namen zu nehmen, der darauf schließen lässt, dass die drei Dateien zusammen gehören.

Jetzt muss das Zertifikat noch von der CA, also Icinga2, unterschrieben werden:

icinga2 pki sign-csr --csr <name>.csr --cert <name>.crt

Zum Schluss muss der API-Nutzer in der Datei „api-user.conf“ angelegt werden. Diese liegt im jeweiligen Unterordner einer jeden Icinga2-Konfiguration:

object ApiUser <name>{
client_cn = <cn-name>
permissions = []
}

Für eine genaue Erklärung der Rechtevergabe des Nutzers lohnt sich ein Blick in die Dokumentation.

Zu guter Letzt muss Icinga2 neu gestartet werden. Danach kann der angelegte Nutzer ohne Eingabe eines Nutzernamens und Passwort auf die Icinga2-API zugreifen, wenn er die Zertifikate bei der Abfrage übergibt.

Kategorien: HowTos
Tags: Icinga Icinga2 Monitoring


Beitrag teilen: