Einführung
Dieses Dokument beschreibt, wie die Nagios-CGIs entscheiden, wer die Überwachungs- und Konfigurationsinformationen sehen darf und wer über das Web-Interface Befehle an den Nagios-Daemon erteilen darf.
Definitionen
Bevor wir fortfahren, ist es wichtig, dass Sie die Bedeutung und den Unterschied zwischen authentifizierten Benutzern und authentifizierten Kontakten verstehen:
- Ein authentifizierter Benutzer ist jemand, der sich dem Web-Server gegenüber mit Benutzer und Passwort authentifiziert hat und dem Zugang zum Nagios-Web-Interface gewährt wurde.
- Ein authentifizierter Kontakt ist ein authentifizierter Benutzer, dessen Benutzername mit dem Kurznamen einer Kontakt-Definition übereinstimmt.
Erstellen von authentifizierten Benutzern
Wenn wir annehmen, dass Sie Ihren Web-Server wie in den Schnellstart-Anleitungen für Fedora, OpenSuse oder Ubuntu konfiguriert haben, dann sollte er Sie dazu auffordern, sich zu authentifizieren, bevor Sie die Nagios-CGIs benutzen können. Sie sollten außerdem ein Benutzerkonto (nagiosadmin) haben, das Zugang zu den CGIs hat.
Während Sie weitere Kontakte definieren, um Host- und Service-Benachrichtigungen zu erhalten, möchten Sie wahrscheinlich auch, dass sie Zugang zum Nagios-Web-Interface haben. Sie können den folgenden Befehl benutzen, um zusätzliche Benutzer hinzuzufügen, die sich bei den CGI authentifizieren können. Ersetzen Sie <username> durch den Benutzernamen, den Sie hinzufügen möchten. In den meisten Fällen sollte der Benutzername mit dem Kurznamen eines Kontakts übereinstimmen, den Sie definiert haben.
htpasswd /usr/local/nagios/etc/htpasswd.users <username>
aktivieren der Authentifizierungs/Autorisierungsfunktionalität in den CGIs
Als nächstes sollten Sie sicherstellen, dass die CGI so konfiguriert sind, dass sie die Authentifizierungs- und Autorisierungsfunktionalität nutzen, um festzulegen, welchen Zugang Benutzer zu Informationen und/oder Befehlen haben. Dies wird durch die use_authentication-Variable in der CGI-Konfigurationsdatei erreicht, die einen Wert ungleich Null haben muss. Beispiel:
use_authentication=1
Okay, nun sind Sie fertig mit dem Einstellen der grundlegenden Authentifizierungs- und Autorisierungsfunktionalität in den CGIs.
Standardberechtigungen für CGI-Informationen
Welche Standardberechtigungen haben Benutzer in den CGIs, wenn die Authentifizierungs- und Autorisierungsfunktionalität aktiviert ist?
CGI-Daten | Authentifizierte Kontakte* | andere authentifizierte Benutzer* |
---|---|---|
Host-Statusinformationen | Ja | Nein |
Host-Konfigurationsinformationen | Ja | Nein |
Host-Verlauf | Ja | Nein |
Host-Benachrichtigungen | Ja | Nein |
Host-Befehle | Ja | Nein |
Service-Statusinformationen | Ja | Nein |
Service-Konfigurationsinformationen | Ja | Nein |
Service-Verlauf | Ja | Nein |
Service-Benachrichtigungen | Ja | Nein |
Service-Befehle | Ja | Nein |
Alle Konfigurationsinformationen | Nein | Nein |
System/Prozessinformationen | Nein | Nein |
System/Prozessbefehle | Nein | Nein |
Authentifizierten Kontakten* werden die folgenden Berechtigungen für jeden Service gewährt, bei dem sie als Kontakt eingetragen sind (aber "Nein" für Services, bei denen sie nicht als Kontakt eingetragen sind)...
- Autorisierung, um Service-Statusinformationen zu sehen
- Autorisierung, um Service-Konfigurationsinformationen zu sehen
- Autorisierung, um Verlauf und Benachrichtigungen für den Service zu sehen
- Autorisierung, um Service-Befehle zu erteilen
Authentifizierten Kontakten* werden die folgenden Berechtigungen für jeden Host gewährt, bei dem sie als Kontakt eingetragen sind (aber "Nein" für Hosts, bei denen sie nicht als Kontakt eingetragen sind)...
- Autorisierung, um Host-Statusinformationen zu sehen
- Autorisierung, um Host-Konfigurationsinformationen zu sehen
- Autorisierung, um Verlauf und Benachrichtigungen für den Host zu sehen
- Autorisierung, um Host-Befehle zu erteilen
- Autorisierung, um Statusinformationen für alle Services des Hosts zu sehen
- Autorisierung, um Konfigurationsinformationen für alle Services des Hosts zu sehen
- Autorisierung, um Verlauf und Benachrichtigungen für alle Services des Host zu sehen
- Autorisierung, um Befehle für alle Services des Hosts zu erteilen
Es ist wichtig anzumerken, dass als Grundeinstellung keiner autorisiert ist, das Folgende zu tun:
- die Log-Datei über das showlog CGI anzusehen
- Nagios-Prozessinformationen über das extended information CGI anzusehen
- Nagios-Prozessbefehle über das command CGI zu erteilen
- Definitionen für Hostgruppen, Kontakte, Kontaktgruppen, Zeitfenster und Befehle über das configuration CGI anzusehen
Sie werden unzweifelhaft Zugang zu diesen Informationen haben wollen, so dass Sie wie unten beschrieben zusätzliche Rechte für sich (und vielleicht andere Benutzer) zuweisen möchten.
Zusätzliche Berechtigungen zu CGI-Informationen gewähren
Mir ist klar, dass die verfügbaren Optionen es nicht erlauben, sehr genau auf bestimmte Berechtigungen einzugehen, aber es ist besser als nichts...
Benutzern können zusätzliche Autorisierungen gegeben werden, indem sie den folgenden Variablen in der CGI-Konfigurationsdatei hinzugefügt werden...
- authorized_for_system_information
- authorized_for_system_commands
- authorized_for_configuration_information
- authorized_for_all_hosts
- authorized_for_all_host_commands
- authorized_for_all_services
- authorized_for_all_service_commands
CGI-Autorisierungsanforderungen
Wenn Sie verwirrt sind, welche Autorisierung Sie benötigen, um Zugang zu verschiedenen Informationen in den CGIs zu bekommen, lesen Sie hier den Abschnitt Autorisierungsanforderungen, in dem jedes CGI beschrieben ist.
Authentifizierung auf sicheren Web-Servern
Wenn Ihr Web-Server in einer sicheren Domäne steht (d.h. hinter einer Firewall) oder wenn Sie SSL benutzen, dann können Sie einen Standard-Benutzernamen definieren, der verwendet werden kann, um die CGI aufzurufen. Dies wird durch die Definition der default_user_name-Option in der CGI-Konfigurationsdatei erreicht. Durch die Definition eines Standard-Benutzernamens, der die CGIs aufrufen kann, können Sie Benutzern erlauben, die CGIs aufzurufen, ohne dass sie sich am Web-Server authentifizieren müssen. Sie möchten das vielleicht nutzen, um die Verwendung der Basis-Web-Authentifizierung zu verhindern, weil diese Passwörter im Klartext über das Internet überträgt.
Wichtig: Definieren Sie keinen Standard-Benutzernamen, solange Sie nicht einen sicheren Web-Server haben und sicher sind, dass sich jeder, der die CGIs aufruft, in irgendeiner Weise authentifiziert hat. Wenn Sie diese Variable definieren, dann wird jeder, der sich am Web-Server authentifiziert, alle Rechte dieses Benutzers erben!
Siehe auch: Optionen CGI-Konfigurationdatei, Informationen zu den CGIs