EN | DE

Bloonix und Sicherheit

Sicherheit ist ein wichtiges Thema und gerade bei Diensten, die im Internet betrieben werden können, extrem wichtig. In diesem Dokument soll erläutert werden, welche Techniken in der Software von Bloonix eingesetzt werden, um die Kommunikation und auch bestimmte Daten von Bloonix abzusichern.

SSL

Die Kommunikation zwischen den einzelnen Bloonix Komponenten wird standardmäßig via SSL abgesichert. Auf diese Weise ist es möglich, Serverkomponenten über SSL-Zertifikate zu validieren. Wenn sich zum Beispiel der Bloonix-Agent mit dem Bloonix-Server verbinden möchte, so kann der Agent sicherstellen, dass er sich auch tatsächlich mit einem validen Server verbindet, in dem der Agent das Zertifikat des Servers validiert. In allen Client/Server Komponenten gibt es hierfür in den Konfigurationsdateien identische Parametereinstellungen.

Für Clients sind das folgende Parameter:

server {
    host $hostname
    port $portnumber
    mode failover
    use_ssl yes
    ssl_verify_mode peer

    # Debian / SuSE / SLES
    ssl_ca_path /etc/ssl/certs

    # Red Hat / CentOS / Fedora
    ssl_ca_file /etc/pki/tls/certs/ca-bundle.crt
}

Die Parameter ssl_ca_path und ssl_ca_file geben den Ort an, an dem die Root-CAs liegen, um das Zertifikat des Servers zu validieren. Wenn ein Zertifikat nicht validiert werden konnte, so wird die Verbindung abgebrochen.

Auf Serverseite gibt es die Parameter ssl_key_file und ssl_cert_file für den privaten Schlüssel sowie das Zertifikat:

tcp_server {
    port $portnumber
    use_ssl yes
    ssl_key_file /path/to/server.key
    ssl_cert_file /path/to/server.cert
}

Passwörter und PBKDF2

Bloonix verwendet PBKDF2 als Hash-Verfahren, um aus den Benutzerpasswörtern für die WebGUI einen Schlüssel abzuleiten, welcher dann in der Datenbank gespeichert wird. Zur Generierung des Schlüssels verwendet Bloonix einen Salt mit einer Länge von 64 Zeichen, SHA512 und mindenstens 10000 Runden.

Der Benutzer „bloonix“

Alle Prozesse von Bloonix laufen auf unixoiden Systemen mit dem Benutzer bloonix, welcher während der Installation von Bloonix erstellt wird. Für den Fall, dass Bloonix zur Prüfung von Services Root-Rechte benötigt, wird sudo verwendet.

Verbindungen zwischen Server und Agent

Netzwerksicherheit

Hier gilt es eine wichtige Frage zu klären: "Wer verbindet sich mit wem?", oder auch: "Wer darf sich mit wem verbinden?". Diese Frage ist besonders für die Netzwerksicherheit wichtig, denn zwischen dem Monitoring-Server und dem zu überwachenden System muss eine Netzwerkverbindung aufgebaut werden. In manchen Netzwerkumgebungen kann das ein Hindernis sein, zum Beispiel wenn sich das Monitoring-System und das zu überwachende System in unterschiedlichen Netzwerken befinden.

Viele Monitoring-Systeme arbeiten nach folgendem Verfahren: es gibt einen Monitoring-Server, der die zeitgerechte Ausführung der Checks verwaltet und sich mit dem zu überwachenden System verbindet, um es zu überwachen.

Bei diesem Verfahren ist es notwendig, dass der Monitoring-Server zu jedem System, welches überwacht werden muss, eine Netzwerkverbindung aufbauen kann. Das Verfahren ist gut, solange sich alle Systeme, die überwacht werden müssen, auch im gleichen Netzwerk wie der Monitoring-Server befinden. Die Schwierigkeiten beginnen, sobald sich Systeme in fremden Netzwerken befinden. Insbesondere für Unternehmen, welche Monitoring als Dienstleistung anbieten möchten, kann dies eine große Hürde darstellen, denn kein Kunde vergibt gerne einen Zugang in sein internes Netzwerk.

Hinweis: Das Monitoring-System Nagios funktoniert auf diese Weise. Der Nagios-Server, welcher für die zeitliche Ausführung der Checks verantwortlich ist, benötigt eine Netzwerkverbindung zu jedem System, welches überwacht werden muss.

Ein Agent verbindet sich mit dem Monitoring-Server

Wegen den oben genannten Schwierigkeiten funktioniert Bloonix anders, oder man könnte soagr sagen, Bloonix funktioniert genau anders herum.

Während bei vielen Monitoring-Systemen der Monitoring-Server eine aktive Komponente und für die zeitliche Ausführung der Checks veranwortlich ist, so ist der Bloonix-Server eine passive Komponente. Der Bloonix-Server ist weder für die zeitliche Auführung von Checks verantwortlich, noch benötigt der Bloonix-Server eine Verbindung zu jedem System, welches überwacht werden muss. Diese Aufgaben wurden an einen eigenen Dienst ausgelagert und zwar dem Bloonix-Agenten.

Der Bloonix-Agent wird entweder direkt auf dem zu überwachenden System installiert:

oder auf einem zentralen Server im Netzwerk installiert:

Der Bloonix-Agent verbindet sich mit dem Bloonix-Server und fragt entweder die Services ab, die in der WebGUI konfiguriert wurden und überwacht werden müssen oder liefert die Ergebnisse der Prüfungen ab. Dieses Verfahren hat den großen Vorteil, dass nicht jedes zu überwachende System für den Monitoring-Server erreichbar sein muss, sondern der Bloonix-Server muss für jeden Agenten erreichbar sein.

Über Bloonix - Über Bloonix | Über Bloonix - Lizenzen | Über Bloonix - Wie funktioniert Bloonix | Über Bloonix - Feature Liste | Über Bloonix - Plugins | Über Bloonix - Systemanforderungen | Sicherheit - Allgemein | Sicherheit - Agent und Satellit | Installation - Wichtige Information vorab | Installation - Repositories | Installation - Elasticsearch | Installation - PostgreSQL | Installation - MySQL/MariaDB | Installation - Nginx | Installation - Bloonix-WebGUI | Installation - Bloonix-Server | Installation - Bloonix-Plugins | Installation - Bloonix-Agent | Installation - Bloonix-WTRM | Installation - Manuelle Installation | Installation - Quick Guide für CentOS 7 und PostgreSQL | Installation - Quick Guide für CentOS 7 und MariaDB | Installation - Quick Guide für Debian 8 und MariaDB | Konfiguration - Allgemeines | Konfiguration - Bloonix-WebGUI | Konfiguration - Bloonix-Server | Konfiguration - Bloonix-Service-Checker | Konfiguration - Bloonix-Agent | Konfiguration - Skripte und Cronjobs | HowTos - Plugins entwickeln | HowTos - Coding mit Stil | HowTos - Dokumentation auf Bloonix.org | HowTos - Verteilte Überwachung mit dem Bloonix-Satelliten | HowTos - Automatische Registrierung von Hosts | FAQ - Wie überwacht Bloonix Hosts und Services | WebGUI - Die Bloonix-WebGUI | WebGUI - Commpanies und wie diese funktionieren | WebGUI - Einen neuen Host anlegen | WebGUI - Host Parameter im Detail | WebGUI - Host Variablen | WebGUI - Host Templates | WebGUI - Klassen von Hosts | WebGUI - Einen neuen Service anlegen | WebGUI - Service Parameter im Detail | WebGUI - Host-Alive-Checks | WebGUI - Web-Transactions | WebGUI - Abhängigkeiten | WebGUI - Geplante Wartungsarbeiten | WebGUI - Kontakte und Benachrichtigungen | WebGUI - Benutzer- und Gruppenverwaltung | WebGUI - Eigene Charts erstellen | WebGUI - Notification Screen | WebGUI - Die Bloonix JSON API | WebGUI - Den Bloonix-Agenten installieren | WebGUI - Den Bloonix-Agenten konfigurieren