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:
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:
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:
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:
- 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:
- Die IP-Adresse oder der DNS Name eines Active Directory Domänencontrollers der für die Abfrage verwendet werden soll mit einem
ldap://192.168.42.80
- Port:
- Port
389
ist der Standard Port für unverschlüsselte Anfragen (mit Verschlüsselung wird separat beschrieben)
- Port
- Base DN:
- In diesem Beispiel ist der DNS-Domänenname
znil.local
. Die Base DN dafür ist dann
- In diesem Beispiel ist der DNS-Domänenname
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:
- Wir wollen hier den Anmeldenamen unserer Windows-Benutzer nehmen. Im Active Directory intern heißt diese Feld
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:
- Hier müssen wir den genauen Distinguished Name (DN) des Benutzers angeben mit dem wir uns am Active Directory anmelden um es abzufragen.
dsquery user -samid ldapSearch
CN=ldapSearch,OU=3.Funktionsbenutzer,DC=znil,DC=local
- Bind Password:
- Hier einfach das Passwort unseres Benutzers für die LDAP-Abfragen einsetzen.
- 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.
- 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.
- 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:
- 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!
- LDAP: Cannot Bind by given Bind DN
- Login name or password is incorrect
- Wie es da steht - Entweder stimmt der Name oder das Passwort unseres Test Benutzers nicht
- Login name or password is incorrect
- "Leerer Bildschirm"
- "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
- Es ist nichts zu sehen / keine Felder etc. mehr
- 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
- Prima, es hat alles geklappt! Tragt die beiden Passwörter noch einmal neu ein und drückt auf Update
noch mal auf OK und es ist geschafft!
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:
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:
LDAP Abfrage mit Verschlüsselung nutzen
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:
- Ändert in der Zeile LDAP host das
ldap://
zuldaps://
- Ändert in der Zeile Port die Nummer von
389
zu636
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