vRealize Log Insight Agent SSL Connection

Um den Sicherheitsstandard in der gesamten Umgebung hoch zu halten ist auch die vRealize Log Insight Agent SSL Connection ein großes Thema. Durch die Agenten werden auf den jeweiligen Systemen zum Teil auch sehr sensible Daten übertragen.

Die Agent Kommunikation ist eigentlich eine TLSv.1.2 gesicherte Verbindung und nicht mehr SSL, wie es die Dokumente und die Bezeichnungen der Parameter oberflächlich vorgaukeln. Hier der Auszug aus der vRealize Log Insight Agent 4.0 Doku der das klarstellt:

vRealize Log Insight-Agenten kommunizieren über TLSv.1.2. SSLv.3/TLSv.1.0 ist zur Erfüllung von Sicherheitsrichtlinien deaktiviert.

Zur Verifizierung habe ich das noch zusätzlich mit Tool testssl.sh geprüft und dabei festgestellt, dass TLS 1.0 dennoch aktiviert ist:

Log Insight Agent SSL Connection - testssl with TLS 1.0

Mit dem Microsoft Network Monitor ist dann aber die TLS 1.2 Kommunikation des Agenten zu erkennen:

Log Insight Agent SSL Connection - TLS Handshake #1

Log Insight Agent SSL Connection - TLS Handshake #1

In der Doku ist das also etwas missverständlich ausgedrückt. TLS 1.0 ist zwar auf der Appliance aktiv, die vRealize Log Insight Agent SSL Connection verwendet aber TLS 1.2.

Zur weiteren Steigerung der Sicherheit könnte man noch komplett TLS 1.0 deaktivieren. Hierzu bitte den VMware KB 2146305 beachten: How to disable TLS v1.0 in vRealize Log Insight

Vorsicht: Ältere Clients können eventuell keine Verbindung mehr zum Web Interface aufbauen!

Vorsicht: Ältere vCenter Versionen können nicht mehr angebunden werden!

TLS 1.1 und höher wird z.B. vom vCenter 5.5 erst ab Update 3e unterstützt (Supported TLS protocols for vSphere 5.5 Update 3e).

Standard Konfiguration:

Log Insight Agent SSL Connection - testssl with TLS 1.0

Log Insight Agent SSL Connection - testssl vulnerables with TLS 1.0

Nach der Deaktivierung von TLS 1.0:

Log Insight Agent SSL Connection - testssl without TLS 1.0

Log Insight Agent SSL Connection - testssl vulnerables without TLS 1.0

Client Kompatibilität ohne TLS 1.0:

Log Insight Agent SSL Connection - testssl clients without TLS 1.0

vRealize Log Insight Agent SSL Connection konfigurieren

Wichtig: Die vRealize Log Insight Agent SSL Connection ist ab der Version 4.0 standardmäßig aktiviert!

Manuelles deaktivieren mit dem Parameter ssl=no ist aber weiterhin möglich.

4.0 Default Konfiguration bezüglich SSL:

; SSL usage. Default:
;ssl=yes
; Example of configuration with trusted CA:
;ssl=yes
;ssl_ca_path=/etc/pki/tls/certs/ca.pem

Mehr Details zu den Neuerungen des Agents 4.0 findet man in dem Artikel Log Insight 4.0: Agent Enhancements von Steve Flanders.

Auszug der erweiterten Agent Konfigurationsparameter bezüglich SSL Verbindungen:

Schlüssel

Beschreibung

ssl_ca_path

Der Pfad zur Bundle-Datei der vertrauenswürdigen Stammzertifikate.

Windows: vRealize Log Insight-Windows-Agenten verwenden nur Systemstamm-Zertifikatsspeicher.

Linux: Wenn nicht angegeben, versucht der Linux-Agent von vRealize Log Insight, vertrauenswürdige Zertifikate von /etc/pki/tls/certs/ca-bundle.crt oder /etc/ssl/certs/ca-certificates.crt zu laden.

ssl_accept_any

Legt fest, ob Zertifikate vom vRealize Log Insight-Agenten akzeptiert werden. Die möglichen Werte sind yes, 1, no oder 0. Wenn der Wert auf „Ja“ oder 1 festgelegt ist, akzeptiert der vRealize Log Insight-Agent jegliche Zertifikate vom Server und richtet eine sichere Verbindung zum Versenden von Daten ein. Der Standardwert lautet „Nein“.

Anmerkung

Ist ssl_accept_any auf „Ja“ oder 1 festgelegt, akzeptiert der Log Insight-Agent Zertifikate ohne übereinstimmenden Common Name.

ssl_accept_any_trusted

Die möglichen Werte sind Ja, 1, Nein oder 0. Wenn der vRealize Log Insight-Agent über ein lokal gespeichertes, von einer vertrauenswürdigen Zertifizierungsbehörde signiertes Zertifikat verfügt und ein anderes gültiges Zertifikat empfängt, welches von einer anderen vertrauenswürdigen Zertifizierungsbehörde signiert ist, prüft er die Konfigurationsoption. Ist der Wert auf „Ja“ oder 1 festgelegt, akzeptiert der Agent das neue gültige Zertifikat. Ist der Wert auf „Nein“ oder 0 festgelegt, lehnt er das Zertifikat ab und beendet die Verbindung. Der Standardwert lautet „Nein“.

ssl_cn

Das selbstsignierte Zertifikat Common Name. Der Standardwert lautet VMware vCenter Log Insight. Sie können einen benutzerdefinierten Common Name festlegen, gegen den das Feld Common Name des Zertifikats geprüft werden muss. Der vRealize Log Insight-Agent überprüft das Feld Common Name des empfangenen Zertifikats gegen den Hostnamen, der für die Verbindung konfiguriert wurde, anhand des Schlüssels hostname im Bereich [server]. Gibt es keine Übereinstimmung, prüft der Agent das Feld Common Name gegen den Schlüssel ssl_cn in der Datei liagent.ini. Stimmen die Werte überein, akzeptiert der vRealize Log Insight-Agent das Zertifikat.

Quelle: Konfigurieren der SSL-Parameter für vRealize Log Insight-Agenten

Wenn alle Clients auf vRealize Log Insight Agent SSL Connection umgestellt sind lässt sich final auch noch komplett die SSL-Verbindungen erzwingen.

Leider ist es aber aktuell nicht so einfach sicherzustellen, dass jeder Agent SSL verwendet:

Appliance Zertifikat

Ich verwende hierzu ein Zertifikat einer zweistufigen Windows CA – root CA offline.

Zur einfachen Handhabung habe ich das Zertifikat auf den FQDN des primären VIP der Appliance ausgestellt und den FQDN des Cluster Nodes als Subject alternative Name (SAN) hinzugefügt.

Log Insight Agent SSL Connection - Appliance Certificate

Das Zertifikat wird als pem File in er Administration UI eingespielt. Zum erstellen dieser Files verwende ich das Tool XCA.

Anforderungen an das pem File aus der Administration UI – SSL Configuration:

Requirements for the custom certificate file:

  1. The certificate file contains both a valid private key and a valid certificate chain.
  2. The private key is generated by the RSA or the DSA algorithm.
  3. The private key is not encrypted by a pass phrase.
  4. If the certificate is signed by a chain of other certificates, all other certificates must be included in the certificate file that you plan to import.
  5. All the certificates and the private key that are included in the certificate file must be PEM-encoded. DER-encoded certificates and private keys are not supported.
  6. All the certificates and the private key that are included in the certificate file must be in the PEM format. Certificates in the PFX, PKCS12, PKCS7, or other formats are not supported.

Weiterführende Informationen sind in der vRealize Log Insight 4.0 Doku zu finden: Installieren eines benutzerdefinierten SSL-Zertifikats

Linux Agent

root CA Zertifikat auf dem System ablegen:

mkdir -p /etc/pki/tls/certs/
vi /etc/pki/tls/certs/MY-CA_1.pem

Anschließend nun noch das pem File mit dem root CA Zertifikat und eventuell den Intermediates füllen. Ich verwende zum Erstellen dieser Files wieder das Tool XCA.

Als Pfad habe ich den in der vRealize Log Insight default Konfiguration vorgeschlagenen gewählt.

Agent Konfiguration anpassen:

Ich gehe hier von einem Update Szenario aus. wenn der Agent ganz neu installiert wird, sollte erst der Agent installiert werden und dann die vRealize Log Insight Agent SSL Connection konfiguriert werden.

vi /var/lib/loginsight-agent/liagent.ini

Log Insight Agent SSL Connection - Linux Config

ssl=yes ist in der Version 4.0 nicht mehr von Nöten.

Agent updaten:

#CentOS, SLES, etc.:
rpm -U VMware-Log-Insight-Agent-4.0.0-4549831.noarch.rpm

#Debian, Ubuntu, etc.:
dpkg --install vmware-log-insight-agent_4.0.0-4549831_all.deb

Log kontrollieren:

Das Log ist unter /var/log/loginsight-agent/ zu finden.

cat /var/log/loginsight-agent/liagent_2016-12-22_12.log

Log Insight Agent SSL Connection - Linux Logfile

Windows Agent

Hier gibt es meistens die komfortable Situation, dass das root Zertifikat an alle Domänen Mitglieder verteilt wird. Somit ist das Zertifikat ohne zusätzliche Konfiguration für den Agent vertrauenswürdig.

Domänen Mitglieder

Da das Zertifikat bereits vertrauenswürdig ist, muss nur SSL aktiviert werden und als Ziel der korrekte FQDN verwendet werden.

Auszug aus der Agent Konfiguration:

Pfad: „C:\ProgramData\VMware\Log Insight Agent\liagent.ini“

Log Insight Agent SSL Connection - Windows Config

ssl=yes ist in der Version 4.0 nicht mehr von Nöten.

Nicht Domänen Mitglieder

Bei nicht Domänen Mitgliedern muss manuell dafür gesorgt werden, dass das Zertifikat für die Agent Kommunikation vertrauenswürdig ist.

Dafür gibt es zwei Varianten:

  1. Das root CA Zertifikat zu den Vertrauenswürdige Root CA`s des Systems hinzufügen
  2. In der Konfiguration auf das pem File verweisen, wie bei den Linux Systemen

Ich bevorzuge definitiv die erstere Variante – das root CA Zertifikat hinzufügen.

Vertrauenswürdige Root CA`s:

Log Insight Agent SSL Connection - Windows Certificates

Konfiguration mit pem File:

ssl=yes
ssl_ca_path=C:\ProgramData\VMware\Log Insight Agent\cert\MY-CA_1.pem

ssl=yes ist in der Version 4.0 nicht mehr von Nöten.

Leave a Reply