Aktionen

Zabbix Server Anmeldung mit Active Directory Benutzern oder LDAP Benutzern

Aus znilwiki

Zabbix stellt seit längerem auch die Möglichkeit zur Verfügung die Authentifizierung über LDAP durchzuführen.
Dann kann man sich zum Beispiel auch mit seinem Windows Benutzernamen und Passwort anmelden.

Da die Einrichtung bei mir mal wieder nicht auf Anhieb geklappt hat hier eine kleine Anleitung.



Voraussetzungen in Zabbix prüfen

Damit das ganze funktioniert muss

  • Das LDAP Modul von PHP installiert
  • Zabbix mit dem Parameter --with-ldap kompiliert worden sein.


Falls Ihr nach meiner Installationsanleitung vorgegangen seit

http://znil.net/index.php?title=Zabbix_Server_%2B_Agent_unter_Ubuntu_14.04_LTS_installieren

habt Ihr schon alles ... falls Ihr das ganze nach dem 20.03.2015 gemacht habt. Vorher fehlten dazu die beiden obigen Dinge.


also, php-Modul nachinstallieren:

apt-get install php5-ldap
service apache2 restart

und Zabbix noch einmal neu kompilieren mit dem Parameter --with-ldap, siehe

http://znil.net/index.php?title=Zabbix_Server_%2B_Agent_unter_Ubuntu_14.04_LTS_installieren#Als_Server

bei einer bestehenden Installation:

  • das configure noch einmal neu ausführen
  • make ausführen
  • Zabbix Dienste anhalten
service zabbix-server stop
service zabbix-agent stop
  • neue Dateien installieren
make install
  • Dienste wieder starten
service zabbix-server start
service zabbix-agent start




Voraussetzungen Active Directory

Ihr braucht im Active Directory einen Benutzer über den die Abfrage erfolgt.
Dies kann ein einfacher Benutzer sein ohne weitere besondere Rechte. Meiner heißt in diesem Fall ldapSearch
Es reicht aus wenn er Mitglied der Gruppe "Domänen-Benutzer" ist:
ZABBIX-LDAP-001.png ZABBIX-LDAP-002.png ZABBIX-LDAP-003.png

Ihr solltet auch unbedingt die Option setzen das das Kennwort niemals abläuft!



Vorbereitungen in Zabbix

Zunächst sollten wir eine Gruppe und einen Benutzer anlegen:



Admin auf lokale Anmeldung festlegen

Wenn wir die Anmeldung auf LDAP umgestellt haben funktioniert im ersten Moment auch nur noch die Anmeldung mit einem Active Directory Benutzer!
Zumindest ein Benutzer sollte sich aber auch später auch am LDAP vorbei Anmelden können.

Dazu richten wir eine neue Gruppe in Zabbix ein:
ZABBIX-LDAP-004.png
Meine Gruppe heißt noLDAP, der Name ist aber beliebig.
Wichtig das ihr

  • den Frontend access auf Internal setzt
  • den Benutzer hinzufügt der sich auch später noch mit seinem lokalem Passwort anmelden können soll


Alle Benutzer die später nicht in dieser Gruppe sind müssen dann Active Directory Benutzer sein!!!!



Ersten Active Directory Benutzer anlegen

Den ersten Benutzer müssen wir aber noch einmal in Zabbix inklusive Passwort anlegen:
ZABBIX-LDAP-005.png
Wichtig ist das der Alias und das Passwort identisch mit den Daten unter Windows (Benutzername und Passwort) ist.
Das müssen wir auch nur beim ersten Benutzer so machen - später legt Ihr die Benutzer einfach nur an die auf Zabbix zugreifen sollen - das Passwort-Feld gibt es nach der Umstellung nicht mehr.
Dieser erste LDAP Benutzer MUSS ein Zabbix Administrator sein! Denn wir stellen als dieser Benutzer die Authentifizierung in Zabbix um.



Umstellung auf LDAP

Wir melden uns als der eben neu angelegte Admin Benutzer mit dem Windows Kontonamen und Passwort an und gehen auf

Administration - Authentication

Zunächst oben auf LDAP umschalten, dann füllen wir die Felder wie folgt:

ZABBIX-LDAP-006.png


  • LDAP host:
Die IP-Adresse oder der DNS Name eines Active Directory Domänencontrollers der für die Abfrage verwendet werden soll mit einem ldap:// davor.
Hat euer Domänencontroller die IP-Adresse 192.168.42.80 tragt Ihr hier also folgendes ein:
ldap://192.168.42.80


  • Port:
Port 389 ist der Standard Port für unverschlüsselte Anfragen (mit Verschlüsselung wird separat beschrieben)


  • Base DN:
In diesem Beispiel ist der DNS-Domänenname znil.local. Die Base DN dafür ist dann
DC=znil,DC=local


  • Search attribute:
Wir wollen hier den Anmeldenamen unserer Windows-Benutzer nehmen. Im Active Directory intern heißt diese Feld sAMAccountName weshalb wir diese Bezeichnung hier angeben müssen:
sAMAccountName


  • Bind DN:
Hier müssen wir den genauen Distinguished Name (DN) des Benutzers angeben mit dem wir uns am Active Directory anmelden um es abzufragen.
Dafür haben wir zuvor extra den Benutzer ldapSearch angelegt.
Doch wie bekommt Ihr den genauen DN dieses Benutzers? Meldet euch an einem Domänencontroller an und führt folgenden befehl aus:
dsquery user -samid ldapSearch
ZABBIX-LDAP-007.png
Das Ergebnis ist der genau DN! diesen können wir dann einfach hier hinein kopieren.
CN=ldapSearch,OU=3.Funktionsbenutzer,DC=znil,DC=local


  • Bind Password:
Hier einfach das Passwort unseres Benutzers für die LDAP-Abfragen einsetzen.


  • Login:
Hier können wir nichts eintragen sondern Zabbix nimmt fest den Namen des aktuell angemeldeten Benutzers. Deshalb haben wir auch vorher unseren Windows Benutzer hier in Zabbix angelegt und uns mit diesem angemeldet.


  • Passwort:
Hier das Passwort des Benutzer angeben wie es in Windows genutzt wird.



Dann drücken wir auf Test:

  • Wenn es einen Fehler gibt erscheint oben ein roter Kasten mit dem genauen Fehler, hier die typischen:
    • ZABBIX-LDAP-008.png
LDAP: Cannot Bind by given Bind DN
Das Kennwort des Benutzer für die AD-Abfragen ist falsch (oder der DN). ACHTUNG: Das Kennwort müsst Ihr jedesmal neu eingeben, auch wenn das noch **** drin stehen - JEDES MAL!


    • ZABBIX-LDAP-009.png
Login name or password is incorrect
Wie es da steht - Entweder stimmt der Name oder das Passwort unseres Test Benutzers nicht


    • "Leerer Bildschirm"
Es ist nichts zu sehen / keine Felder etc. mehr
Die PHP-LDAP Erweiterung fehlt oder ist noch nicht aktiv. Hattet Ihr diese schon installiert startet den Apache Server oder aber den ganzen Zabbix Server einmal neu


    • Der Dialog erscheint einfach wieder wie zuvor
Prima, es hat alles geklappt! Tragt die beiden Passwörter noch einmal neu ein und drückt auf Update


ZABBIX-LDAP-010.png

noch mal auf OK und es ist geschafft!
ZABBIX-LDAP-011.png



Weitere AD / Windows Benutzer hinzufügen

Wollen wir nun weitere Benutzer in Zabbix nutzen so legen wir diese wie vorher einfach in Zabbix an.
Wichtig ist das der Alias mit dem Windows-Anmeldenamen übereinstimmt.
Das Kennwort können wir nun nicht mehr setzen:
ZABBIX-LDAP-012.png

Die Rechte an den Benutzer vergeben wir ganz normal wie zuvor bei den lokalen Benutzern.



Trotz LDAP einen lokalen Benutzer anlegen

Wollt ihr trotz der Umstellung einen weiteren lokalen Benutzer anlegen so legt diesen an und fügt die Gruppe "noLDAP" hinzu die wir am Anfang erstellt haben.
Sobald Ihr diese Gruppe beim Benutzer hinzugefügt habt erscheinen die Felder für die Passwörter wieder:
ZABBIX-LDAP-013.png



LDAP Abfrage mit Verschlüsselung nutzen

Warning.png
Warnung: LDAP über SSL ist auf einem Windows Domänencontroller ab Werk NICHT eingeschaltet und Konfiguriert! Ihr müsst das also erst auf eurem Domänencontroller aktivieren! Da muss man etwas mehr machen weshalb ich das an dieser Stelle nicht beschreiben


Wenn Ihr alles wie zuvor beschrieben eingerichtet hat findet die Kommunikation zwischen dem Zabbix-Server und dem Domänencontroller unverschlüsselt statt.
Soll diese verschlüsselt stattfinden so ändert folgendes:
ZABBIX-LDAP-014.png

  • Ändert in der Zeile LDAP host das ldap:// zu ldaps://
  • Ändert in der Zeile Port die Nummer von 389 zu 636




Active Directory Gruppen statt Benutzern verwenden

Nun wäre es bequemer wenn man eine Gruppe definieren könnte dessen Mitglieder sich dann in Zabbix anmelden können.
Geht aber leider nicht, ist aber schon seit langer Zeit auf der Wunschliste bei Zabbix:

https://support.zabbix.com/browse/ZBXNEXT-276

Es gibt jemanden der ein Synchonisierungs-Script dafür geschrieben hat:

http://unix-heaven.org/node/105

welches die Benutzer bestimmter Gruppen immer automatisch in Zabbix importiert - das habe ich aber noch nicht getestet.



Hilfe ich habe mich ausgesperrt / LDAP funktioniert nicht mehr

Falls die Abfrage gegen LDAP / Active Directory nicht mehr funktioniert kann dieses an vielen Gründen liegen:

  • Es gibt den Domänencontroller für die LDAP-Abfrage nicht mehr
  • Das Benutzer-Objekt des Benutzers für die LDAP-Abfrage wurde in eine andere OU verschoben
  • Eine der OU's im Pfad des Benutzerkontos wurde umbenannt


An sich kein Problem - meldet euch mit einem Benutzer an der auf "interne Anmeldung" gesetzt wurde (Siehe weiter oben) und korrigiert die LDAP-Einstellungen.
Habt Ihr keinen Benutzer auf lokale Anmeldung gesetzt so könnt Ihr mit einem Eingriff in die Datenbank die Anmeldung wieder auf "Intern" setzen:

mysql -u root -p
use zabbix;
update config set authentication_type=0 where configid=1;

Zeile 1 baut eine Verbindung zur Zabbix-Datenbank auf und fragt dabei nach dem Passwort.
Zeile 2 wählt die Zabbix-Datenbank aus - den Namen müsst Ihr ggf. anpassen.
Zeile 3 ändern die Anmeldung wieder auf Intern.

Das funktioniert sofort und Neustart von Zabbix.
Allerdings braucht Ihr trotzdem 2 Dinge:

  • Einen vorhandenen lokalen Benutzernamen - den admin oder Admin sollte es immer geben
  • Das Passwort für den Benutzer - das des Admins wäre ab Werk zabbix




Kommentare

Loading comments...