ProHoster > Blog > Verwaltung > Elastic unter Verschluss: Ermöglicht die Sicherheitsoptionen des Elasticsearch-Clusters für den Zugriff von innen und außen
Elastic unter Verschluss: Ermöglicht die Sicherheitsoptionen des Elasticsearch-Clusters für den Zugriff von innen und außen
Elastic Stack ist ein bekanntes Tool im SIEM-Systemmarkt (eigentlich nicht nur dort). Es kann viele Daten unterschiedlicher Größe sammeln, sowohl sensible als auch nicht sehr sensible. Es ist nicht ganz richtig, wenn der Zugriff auf die Elastic Stack-Elemente selbst nicht geschützt ist. Standardmäßig laufen alle vorkonfigurierten Elastic-Elemente (Elasticsearch, Logstash, Kibana und Beats-Collectors) auf offenen Protokollen. Und in Kibana selbst ist die Authentifizierung deaktiviert. Alle diese Interaktionen können gesichert werden. In diesem Artikel erklären wir Ihnen, wie das geht. Der Einfachheit halber wurde die Geschichte in drei semantische Blöcke unterteilt:
Vorbild für den Datenzugriff
Datensicherheit innerhalb eines Elasticsearch-Clusters
Sicherung von Daten außerhalb eines Elasticsearch-Clusters
Details unter dem Schnitt.
Vorbild für den Datenzugriff
Wenn Sie Elasticsearch installieren und es in keiner Weise optimieren, steht allen der Zugriff auf alle Indizes offen. Na ja, oder diejenigen, die Curl benutzen können. Um dies zu vermeiden, verfügt Elasticsearch über ein Vorbild, das ab einem Basic-Abonnement (das kostenlos ist) verfügbar ist. Schematisch sieht es in etwa so aus:
Was ist auf dem Bild
Benutzer sind alle, die sich mit ihren Zugangsdaten anmelden können.
Ressourcen sind Indizes, Dokumente, Felder, Benutzer und andere Speichereinheiten (das Rollenmodell für einige Ressourcen ist nur in kostenpflichtigen Abonnements verfügbar).
Standardmäßig hat Elasticsearch Box-Benutzeran denen befestigt sind Boxrollen. Nachdem Sie die Sicherheitseinstellungen aktiviert haben, können Sie diese sofort verwenden.
Um die Sicherheit in den Elasticsearch-Einstellungen zu aktivieren, müssen Sie sie zur Konfigurationsdatei hinzufügen (standardmäßig ist dies der Fall). elasticsearch/config/elasticsearch.yml) Neue Zeile:
xpack.security.enabled: true
Nachdem Sie die Konfigurationsdatei geändert haben, starten oder starten Sie Elasticsearch neu, damit die Änderungen wirksam werden. Der nächste Schritt besteht darin, den geboxten Benutzern Passwörter zuzuweisen. Lassen Sie uns dies interaktiv mit dem folgenden Befehl tun:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-setup-passwords interactive
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
Wir prüfen:
[elastic@node1 ~]$ curl -u elastic 'node1:9200/_cat/nodes?pretty'
Enter host password for user 'elastic':
192.168.0.2 23 46 14 0.28 0.32 0.18 dim * node1
Sie können sich auf die Schulter klopfen – die Einstellungen auf der Elasticsearch-Seite sind abgeschlossen. Jetzt ist es an der Zeit, Kibana zu konfigurieren. Wenn Sie es jetzt ausführen, werden Fehler angezeigt. Daher ist es wichtig, einen Schlüsselspeicher zu erstellen. Dies geschieht in zwei Befehlen (user Kibana und das beim Passworterstellungsschritt in Elasticsearch eingegebene Passwort):
Wenn alles korrekt ist, fragt Kibana nach einem Benutzernamen und einem Passwort. Das Basic-Abonnement beinhaltet ein Rollenmodell basierend auf internen Benutzern. Ab Gold können Sie externe Authentifizierungssysteme anbinden – LDAP, PKI, Active Directory und Single-Sign-On-Systeme.
Zugriffsrechte auf Objekte innerhalb von Elasticsearch können ebenfalls eingeschränkt werden. Um jedoch dasselbe für Dokumente oder Felder tun zu können, benötigen Sie ein kostenpflichtiges Abonnement (dieser Luxus beginnt mit der Platin-Stufe). Diese Einstellungen sind in der Kibana-Oberfläche oder über verfügbar Sicherheits-API. Sie können das bereits bekannte Dev Tools-Menü durchsehen:
Datensicherheit innerhalb eines Elasticsearch-Clusters
Wenn Elasticsearch in einem Cluster ausgeführt wird (was häufig vorkommt), werden Sicherheitseinstellungen innerhalb des Clusters wichtig. Für die sichere Kommunikation zwischen Knoten verwendet Elasticsearch das TLS-Protokoll. Um eine sichere Kommunikation zwischen ihnen einzurichten, benötigen Sie ein Zertifikat. Wir generieren ein Zertifikat und einen privaten Schlüssel im PEM-Format:
[elastic@node1 ~]$ ./elasticsearch/bin/elasticsearch-certutil ca --pem
Nachdem Sie den obigen Befehl ausgeführt haben, im Verzeichnis /../elasticsearch Das Archiv wird angezeigt elastische-stack-ca.zip. Darin finden Sie ein Zertifikat und einen privaten Schlüssel mit Erweiterungen crt и Schlüssel jeweils. Es empfiehlt sich, sie auf einer gemeinsamen Ressource zu platzieren, die von allen Knoten im Cluster aus zugänglich sein sollte.
Jeder Knoten benötigt nun seine eigenen Zertifikate und privaten Schlüssel, die auf denen im freigegebenen Verzeichnis basieren. Beim Ausführen des Befehls werden Sie aufgefordert, ein Passwort festzulegen. Sie können zusätzliche Optionen -ip und -dns hinzufügen, um die interagierenden Knoten vollständig zu überprüfen.
Als Ergebnis der Befehlsausführung erhalten wir ein Zertifikat und einen privaten Schlüssel im PKCS#12-Format, geschützt durch ein Passwort. Es bleibt die generierte Datei zu verschieben p12 in das Konfigurationsverzeichnis:
Es gibt eine weitere Sicherheitsoption – IP-Adressfilterung (verfügbar in Abonnements ab der Gold-Stufe). Ermöglicht Ihnen das Erstellen von Whitelists mit IP-Adressen, von denen Knoten zugreifen dürfen.
Sicherung von Daten außerhalb eines Elasticsearch-Clusters
Außerhalb des Clusters bedeutet die Anbindung externer Tools: Kibana, Logstash, Beats oder andere externe Clients.
Um die Unterstützung für https (anstelle von http) zu konfigurieren, fügen Sie neue Zeilen zu elasticsearch.yml hinzu:
Nach dem Hinzufügen der Schlüssel können die Elasticsearch-Knoten über https verbunden werden. Jetzt können sie gestartet werden.
Der nächste Schritt besteht darin, einen Schlüssel zum Verbinden von Kibana zu erstellen und ihn der Konfiguration hinzuzufügen. Basierend auf dem Zertifikat, das sich bereits im freigegebenen Verzeichnis befindet, generieren wir ein Zertifikat im PEM-Format (PKCS#12 wird von Kibana, Logstash und Beats noch nicht unterstützt):
Die Schlüssel sind vorhanden, also müssen Sie nur noch die Kibana-Konfiguration ändern, damit sie verwendet werden. Ändern Sie in der Konfigurationsdatei kibana.yml http in https und fügen Sie Zeilen mit SSL-Verbindungseinstellungen hinzu. Die letzten drei Zeilen konfigurieren die sichere Kommunikation zwischen dem Browser des Benutzers und Kibana.
Damit sind die Einstellungen abgeschlossen und der Zugriff auf Daten im Elasticsearch-Cluster wird verschlüsselt.
Wenn Sie Fragen zu den Funktionen von Elastic Stack bei kostenlosen oder kostenpflichtigen Abonnements, Überwachungsaufgaben oder der Erstellung eines SIEM-Systems haben, hinterlassen Sie eine Anfrage an Feedback-Formular auf unserer Website.
Weitere unserer Artikel über Elastic Stack auf Habré: