Loading

Apache Log4j2 Sicherheitslücke (Log4shell) – Tableau Server Problemumgehungsschritte

Veröffentlichungsdatum: Dec 9, 2022
Beschreibung
Kürzlich bekannt gewordene Sicherheitslücken ermöglichen die Ausführung von Remotecode in Produkten, die die Log4j Apache-Bibliothek verwenden.

Cause

Sicherheitslücken CVE-2021-44228 und CVE-2021-45046 in Apache Log4j 2-Bibliothek
Lösung

Option 1: Tableau aktualisieren

 

Für Kunden mit aktiver Wartung: Wenn Sie nicht von einer betroffenen Version (eine Produktversion vor dem 15. Dezember 2021) oder auf die Produktversion vom 15. Dezember 2021 aktualisiert haben, aktualisieren Sie auf eine der neueren Versionen:

WICHTIGER HINWEIS: Nach der Aktualisierung auf die Produktversionen vom 19. Dezember 2021 oder neuer kann es vorkommen, dass ältere Dateien von zuvor konfigurierten Prozessen im Dateisystem vorhanden sind. Zum Beispiel nach Topologieänderungen, um die Prozessanzahl zu ändern, oder Verschieben von Prozessen auf einen anderen Tableau Server-Knoten. Versionen von log4j-core-2.15 oder früher können sicher gelöscht werden. Auf diese Dateien wird im Rahmen des Tableau Server-Betriebs nie zugegriffen und sie können sicher entfernt werden, wenn gewünscht. Alternativ können Sie auch die Verzeichnisse bereinigen und die aktualisierten Dateien bereitstellen, indem Sie die Dienste neu verteilen (siehe Onlinehilfe zum Konfigurieren von Knotenpunkten).
 
Mit den Tableau-Produktversionen vom 15. Dezember 2021 wurden die Log4j2-Dateien auf Version 2.15 aktualisiert. Möglicherweise sind noch Diagnose- oder Hilfskomponenten vorhanden. Wir haben das Risiko bei diesen ausstehenden Komponenten durch Konfigurationsänderungen verringert, die die anfällige JNDI-Suchfunktion deaktivieren.
Die Tableau-Produktversion vom 19. Dezember 2021 hat die Log4j-Version 2.16 integriert, in der die JNDI-Suche standardmäßig deaktiviert ist. Diese Aktion betrifft CVE-2021-44228 und CVE-2021-45046.
  • Tableau Server 2021.4.2+, 2021.3.6+, 2021.2.7+, 2021.1.10+, 2020.4.13+
Wenn Sie auf die Produktversionen vom 19. Dezember 2021 aktualisieren, beheben Sie die Sicherheitsprobleme, die derzeit in CVE-2021-44228 und CVE-2021-45046 identifiziert wurden.

 

Option 2: Führen Sie die in Option 2 beschriebenen Problemumgehungsschritte durch, wenn:

Sie auf die Produktversion vom 15. Dezember 2021 aktualisiert haben und nicht auf eine neuere Version aktualisieren können (außerhalb von Wartung, außerhalb eines Unternehmenswartungsfensters usw.)
Sie eine betroffene Version verwenden (eine Produktversion, die vor dem 15. Dezember 2021 veröffentlicht wurde) und nicht auf eine neuere Version aktualisieren können

HINWEIS:
  • Diese Schritte sind nicht für die Produktversionen vom 19. Dezember 2021 gedacht, die log4j auf 2.16 aktualisiert haben.
  • Diese Problemumgehungsschritte gelten für Tableau Server-Versionen 2020.1 - 2021.4 vor den Produktversionen vom 19. Dezember 2021 und neueren Versionen.

Mit diesen Anweisungen entfernen Sie die jndilookup.class aus anfälligen Jars. Es gibt zwei Komponenten, die nach dem Entfernen dieser Funktion nicht mehr funktionieren, und wir ersetzen diese spezifischen Komponenten-Jars mit 2.16. Zur Ausführung des Skripts ist Python erforderlich. Das Skript stellt sicher, dass alle Instanzen der Datei JndiLookup.class auch innerhalb von verschachtelten Java-Bibliotheken gefunden werden. 

Tableau Server

HINWEIS:
  • Planen Sie mindestens eine Stunde Ausfallzeit ein, da jedes Java-Archiv überprüft werden muss, um wirksame Abhilfe sicherzustellen. Bitte halten Sie sich an die Schritte und versuchen Sie nicht, log4j-Dateien manuell zu ändern. Diese Schritte wurden zwar auf allen unterstützten Hauptversionen sowie 2020.1-2020.3 getestet, jedoch empfiehlt Tableau, einen Snapshot Ihres Servers zu erstellen und ein Backup anzulegen, bevor Sie mit manuellen Änderungen beginnen.
  • Wenn Sie auf die Produktversionen vom 19. Dezember 2021 oder neuer aktualisiert haben, müssen Sie keine Maßnahmen ergreifen, da die JNDI-Suche für diese Versionen deaktiviert wurde.

Tableau Server für Windows

Um die im folgenden Video angezeigten Schritte besser zu sehen, erweitern Sie den Abschnitt. Hinweis: Für das Video ist kein Ton verfügbar.

Schritt 1: Führen Sie auf jedem Netzknoten die folgenden Aktionen aus:


1. Laden Sie von der folgenden Website Python 3.10 herunter und installieren Sie es: https://www.python.org/downloads/

2. Wählen Sie unter "Die neueste Version für Windows herunterladen" die Option "Python 3.10.1 herunterladen".
 
Direkter Link: Laden Sie das Windows-Installationsprogramm (64-Bit) herunter: https://www.python.org/ftp/python/3.10.1/python-3.10.1-amd64.exe

3. Wechseln Sie an den Download-Zielort, z. B. C:\users\<username>\Downloads.

4. Klicken Sie mit der rechten Maustaste auf Python-3.10.1-amd64 und wählen Sie "Als Administrator ausführen" aus.

5. Wenn Setup startet, wählen Sie "Python 3.10 zu Pfad hinzufügen" aus.

6. Wählen Sie bei Bedarf "Jetzt installieren" oder "Installation anpassen", um einen anderen Installationspfad zu konfigurieren.

Wenn Sie die Fehlermeldung "This installation is forbidden by system policy" (Diese Installation ist durch Systemrichtlinien verboten) sehen, führen Sie die Downloads erneut aus, indem Sie mit der rechten Maustaste auf "Als Administrator ausführen" klicken.

7. Wählen Sie am Ende der Installation "Pfadlängenbegrenzung deaktivieren" aus.

8. Laden Sie das erforderliche Python-Skript und die Log4j-Jars der Version 2.16 für Windows in der diesem Artikel beigefügten Datei remove_jndi.zip herunter, die Folgendes enthält:

  • log4j-api-2.16.0.jar
  • log4j-core-2.16.0.jar
  • log4j-slf4j-impl-2.16.0.jar
  • remove_jndilookup_win.py
8a. Öffnen Sie eine neue Administrator-Eingabeaufforderung, um sicherzustellen, dass sich Python im Pfad befindet.

8b. Legen Sie das Verzeichnis c:\remove_jdni an, indem Sie folgenden Befehl eingeben:
 
mkdir c:\remove_jndi
 
8c. Verschieben Sie die obigen vier Dateien in dieses Verzeichnis. Hinweis: In den folgenden Anweisungen wird auf das Verzeichnis C:\remove_jndi als Speicherort dieser Dateien verwiesen.
 
Wenn dies der erste Knoten ist, auf dem Sie diese Anweisungen ausführen, beenden Sie Tableau Server:
 
tsm stop
 

Schritt 2: Halten Sie die Verwaltungsdienste an. 

1. Nachdem Tableau Server angehalten wurde, stoppen Sie die Verwaltungsdienste auf jedem Knoten, indem Sie die Datei stop-administative-services.cmd aus dem Verzeichnis \packages\scripts.<version> ausführen. Standardmäßig ist dies:
 
Beispielpfad "C:\Program Files\Tableau\Tableau Server\packages\scripts.<version>"

2. Wechseln Sie in das Verzeichnis scripts<version> im packages-Ordner innerhalb Ihrer Installation:
 
Der folgende Befehl verwendet eine Umgebungsvariable, um den spezifischen Pfad einer beliebigen Version zu ermitteln.

cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\scripts.%TABLEAU_SERVER_DATA_DIR_VERSION%"

3. Führen Sie das Skript zum Anhalten der Verwaltungsdienste aus:
 
a. stop-administrative-services.cmd

b. Führen Sie das Skript remove_jndilookup aus, um die jndilookup.class-Datei von der Tableau-Server-Instanz zu entfernen, auf der Ihre Installation erfolgt ist:
 
python.exe c:\remove_jndi\remove_jndilookup_win.py "C:\Program Files\Tableau\Tableau Server"

Bitte fügen Sie kein "\" an das Ende des Pfades an, da sonst ein Fehler auftreten kann.

Am Ende jeder Ausführung von remove_jndilookup_win.py sehen Sie eine Protokollierung mit den Dateien, aus denen die JndiLookup.class entfernt wurde. Beispiel:

"Findings:

Detected org/apache/logging/log4j/core/lookup/JndiLookup.class in C:\Program Files\Tableau\Tableau Server\<path to file>"

c. Bei einer Installation am Standardspeicherort müssen Sie es ein zweites Mal ausführen:
 
python.exe c:\remove_jndi\remove_jndilookup_win.py "c:\ProgramData\Tableau\Tableau Server"
 
Bitte fügen Sie kein "\" an das Ende des Pfades an, da sonst ein Fehler auftreten kann.


Für die Versionen 2020.1 bis 2020.3 und Dezember-Wartungsupdates vom 15. Dezember 2021 (2021.4.1, 2021.3.5, 2021.2.6, 2021.1.9, 2020.4.12) gehen Sie zu Schritt 4, Starten der Verwaltungsdienste.
 

Schritt 3: Für die Versionen 2020.4 und neuer, mit Ausnahme der Dezember-Wartungsupdates, kopieren Sie die Log4j 2.16-Dateien in die Verzeichnisse "elasticsearch" und "solr", nachdem das Python-Skript ausgeführt wurde (zweimal, wenn es am Standardort installiert wurde).


1. Suchen Sie Ihr elasticsearch-Verzeichnis in Ihrer Installation.
 
a. Beispiel: C:\Program Files\Tableau\Tableau Server\packages\elasticsearch.20213.21.0917.1006

b. cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib"

2. Kopieren Sie im Verzeichnis elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib die Dateien log4j-core-2.16.0.jar und log4j-api.2.16.0.jar in das aktuelle Verzeichnis.
 
HINWEIS: In den folgenden Anweisungen steht ein Punkt für das "aktuelle Verzeichnis".

a. copy c:\remove_jndi\log4j-core-2.16.0.jar .

b. copy c:\remove_jndi\log4j-api-2.16.0.jar .

3. Entfernen Sie im Verzeichnis elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\lib die alten Versionen.
 
a. del log4j-api-2.11.1.jar

b. del log4j-core-2.11.1.jar

4. Wechseln Sie dann in das Verzeichnis plugins\search-guard7 unter "C:\Program Files\Tableau\Tableau Server\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%"
cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\elasticsearch.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7"
 
5. Entfernen Sie die alte jar-Datei:
 
del log4j-slf4j-impl-2.11.1.jar

6. Kopieren Sie die neue jar-Datei auf den Namen der alten jar-Datei:
 
copy c:\remove_jndi\log4j-slf4j-impl-2.16.0.jar log4j-slf4j-impl-2.11.1.jar
 
7. Wechseln Sie das Verzeichnis zum Ordner packages\solr7.%TABLEAU_SERVER_DATA_DIR_VERSION%\server\lib\ext:

cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\solr7.%TABLEAU_SERVER_DATA_DIR_VERSION%\server\lib\ext"
 
8. Kopieren Sie alle drei 2.16.0-Jars in das aktuelle Arbeitsverzeichnis (dargestellt durch einen Punkt):

copy c:\remove_jndi\log4j*.jar .
 
9. Es gibt eine weitere jar-Datei, die im elasticserver-Verzeichnis gelöscht werden muss. Bei einer Standardinstallation befindet sich der Pfad zu dieser jar-Datei unter ProgramData. Wechseln Sie das Verzeichnis zu: "C:\ProgramData\Tableau\Tableau Server\data\tabsvc\services\elasticserver_0.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7"
 
 
cd "%TABLEAU_SERVER_DATA_DIR%\data\tabsvc\services\elasticserver_0.%TABLEAU_SERVER_DATA_DIR_VERSION%\plugins\search-guard-7"
 
 
10. Löschen Sie log4j-slf4j-impl-2.11.1.jar:
 
del log4j-slf4j-impl-2.11.1.jar

Empfohlener Schritt: Überprüfen Sie, ob in Ihrem Produkt keine weiteren JndiLookup.class-Dateien früher als Version 2.16 vorhanden sind.

1. Führen Sie remove_jndilookup mit der Option "--dryrun" aus, um das Skript anzuweisen, die Verzeichnisse zu durchsuchen, aber die Dateien nicht zu bearbeiten:

python.exe c:\remove_jndi\remove_jndilookup_win.py --dryrun "C:\Program Files\Tableau\Tableau Server" > verification.txt

python.exe c:\remove_jndi\remove_jndilookup_win.py --dryrun "c:\ProgramData\Tableau\Tableau Server" >> verification.txt


2. Wenn der Abschnitt "Findings:" der Testlauf-Ausgabe in verification.txt keine Einträge enthält, bedeutet dies, dass keine weiteren Jars gefunden wurden, die die JndiLookup.class enthalten.


Schritt 4: Starten Sie die Verwaltungsdienste, wenden Sie eine Konfigurationsänderung an, um sicherzustellen, dass unsere Änderungen übernommen werden, und starten Sie dann den Server.

 
1. Starten Sie die TSM-Verwaltungsdienste auf jedem Netzknoten:
 
a. cd "%TABLEAU_SERVER_INSTALL_DIR%\packages\scripts.%TABLEAU_SERVER_DATA_DIR_VERSION%"
 
b. start-administrative-services.cmd
 
HINWEIS: Sobald jeder Tableau Server-Knoten die Verwaltungsdienste gestartet hat, muss eine Konfigurationsänderung vorgenommen werden, um die war-Dateien neu zu generieren:

2. Ermitteln Sie auf dem Anfangsknoten den aktuellen Wert für gateway.timeout:
 
tsm configuration get -k gateway.timeout
 
3. Erhöhen Sie den Wert von gateway.timeout um 1:
 
tsm configuration set -k gateway.timeout -v <current value +1, example 7201 if set at default>

4. Wenden Sie die ausstehenden Änderungen an:
 
tsm pending-changes apply

5. Starten Sie Tableau Server
 
tsm start
 
Die JdniLookup.class-Dateien sollten nun aus allen .jar- und .war-Dateien auf Tableau Server entfernt worden sein.

Tableau Server für Linux

FÜHREN SIE DIE FOLGENDEN SCHRITTE NICHT ALS root aus. Verwenden Sie stattdessen sudo.

HINWEIS: Diese Anweisungen setzen voraus, dass Python auf jedem Knotenpunkt des Clusters installiert ist.

Schritt 1: Führen Sie auf jedem Netzknoten die folgenden Aktionen aus:


1. Laden Sie das erforderliche Python-Skript und die Log4j-Jars der Version 2.16 für Linux in der diesem Artikel beigefügten Datei remove_jndi_linux.tar.gz herunter, die Folgendes enthält:
  • log4j-api-2.16.0.jar
  • log4j-core-2.16.0.jar
  • log4j-slf4j-impl-2.16.0.jar
  • remove_jndilookup.py
2. Entpacken Sie die Datei remove_jndi_linux.tar.gz.
 
sudo tar -xzvf remove_jndi_linux.tar.gz
 
3. Legen Sie in Ihrem Home-Verzeichnis ein Verzeichnis mit dem Namen /elasticJars an und verschieben Sie die drei jar-Dateien in das Verzeichnis /elasticJars:
 
mkdir ~/elasticJars
mv ./log4j* ~/elasticJars

4. Setzen Sie die Berechtigungen der jar-Dateien in elasticJars auf -rw-r--r--
 
sudo chmod -R 644 ./elasticJars/

5. Setzen Sie die Berechtigungen für das Skript remove_jndilookup.py auf "Ausführen".

sudo chmod 744 ./remove_jndilookup.py

6. Beenden Sie Tableau Server.

tsm stop
 
7. Stellen Sie sicher, dass die Umgebungsvariable TABLEAU_SERVER_DATA_DIR_VERSION in Ihrer Umgebung vorhanden ist.

env | grep TABLEAU_SERVER_DATA_DIR_VERSION

7a. Wenn der vorherige Befehl keine Version zurückgibt, führen Sie den folgenden Befehl aus, um die Variable für diese Sitzung zu setzen:

export $(cat /etc/opt/tableau/tableau_server/environment.bash | grep TABLEAU_SERVER_DATA_DIR_VERSION | xargs)
 
7b. Vergewissern Sie sich, dass die Umgebungsvariable TABLEAU_SERVER_DATA_DIR_VERSION in Ihrer Umgebung vorhanden ist.

env | grep TABLEAU_SERVER_DATA_DIR_VERSION
 

Schritt 2: Halten Sie die Verwaltungsdienste für jeden Netzknoten an.

HINWEIS: Wiederholen Sie alle folgenden Schritte an jedem Knoten. Diese Schritte gehen vom Standardinstallationsort aus: /opt/tableau/tableau_server/packages
 

1. Halten Sie die Verwaltungsdienste an.

sudo /opt/tableau/tableau_server/packages/scripts.$TABLEAU_SERVER_DATA_DIR_VERSION/stop-administrative-services

2. Führen Sie das Skript remove_jndilookup.py aus, um die Dateien JndiLookup.class aus den Jars im packages-Verzeichnis zu entfernen.

sudo ./remove_jndilookup.py /opt/tableau/tableau_server/packages

HINWEIS: Sobald das Skript remove_jndilookup.py abgeschlossen ist, führen Sie das Skript ein zweites Mal mit dem Datenverzeichnis aus. Das ist standardmäßig /var/opt/tableau/tableau_server.
 

3. Legen Sie zunächst eine Kopie des Skripts im Home-Verzeichnis des unberechtigten Benutzers an, der standardmäßig "tableau" heißt:

sudo cp ./remove_jndilookup.py /var/opt/tableau/tableau_server

4. Ändern Sie die Inhaberschaft des Skripts auf tableau-Benutzer und -Gruppe:
 
 
sudo chown tableau:tableau /var/opt/tableau/tableau_server/remove_jndilookup.py
 

5. Starten Sie eine Sitzung als unberechtigter Benutzer:

sudo su -l tableau

6. Führen Sie das Skript aus, um die JndiLookup.class-Dateien aus den Jars im Datenverzeichnis zu entfernen:

./remove_jndilookup.py /var/opt/tableau/tableau_server

7. Beenden Sie die Tableau-Shell:

exit
 

Für die Versionen 2020.1 bis 2020.3 und Dezember-Wartungsupdates vom 15. Dezember 2021 (Tableau 2021.4.1, 2021.3.5, 2021.2.6, 2021.1.9, 2020.4.12) gehen Sie zu Schritt 4, Starten der Verwaltungsdienste.
 

Schritt 3: Für die Versionen 2020.4 und neuer, mit Ausnahme der Dezember-Wartungsupdates, kopieren Sie die Log4j 2.16-Dateien in das elasticsearch-Verzeichnis, nachdem das Python-Skript zweimal ausgeführt wurde.

 
1. Kopieren Sie auf jedem Knoten die Jars aus ~/elasticJars an die Zielorte und entfernen Sie die alten Jars:

sudo cp ./elasticJars/log4j-api-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/

sudo cp ./elasticJars/log4j-core-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/

sudo cp ./elasticJars/log4j-slf4j-impl-2.16.0.jar /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/plugins/search-guard-7/log4j-slf4j-impl-2.11.1.jar

sudo rm /var/opt/tableau/tableau_server/data/tabsvc/services/elasticserver_0.$TABLEAU_SERVER_DATA_DIR_VERSION/plugins/search-guard-7/log4j-slf4j-impl-2.11.1.jar

sudo rm /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/log4j-api-2.11.1.jar

sudo rm /opt/tableau/tableau_server/packages/elasticsearch.$TABLEAU_SERVER_DATA_DIR_VERSION/lib/log4j-core-2.11.1.jar
 

Empfohlener Schritt: Überprüfen Sie, ob in Ihrem Produkt keine weiteren JndiLookup.class-Dateien früher als Version 2.16 vorhanden sind.

Sie können dann remove_jndilookup mit dem Flag "--dryrun" ausführen, damit das Skript das Verzeichnis durchsucht, aber keine Aktionen an den Dateien vornimmt:

1. Führen Sie das Skript remove_jndilookup.py mit dem Flag "--dryrun" im Installationsverzeichnis aus, damit das Skript das Verzeichnis durchsucht, aber keine Aktionen an den Dateien ausführt.

sudo ./remove_jndilookup.py --dryrun /opt/tableau/tableau_server/packages > verification.txt

HINWEIS: Sobald das Skript remove_jndilookup.py abgeschlossen ist, führen Sie das Skript ein zweites Mal mit dem Datenverzeichnis aus, um das Datenverzeichnis zu validieren. Das ist standardmäßig /var/opt/tableau/tableau_server.

2. Legen Sie zunächst eine Kopie des Skripts im Home-Verzeichnis des unberechtigten Benutzers an, der standardmäßig "tableau" heißt:

sudo cp ./remove_jndilookup.py /var/opt/tableau/tableau_server

3. Ändern Sie die Inhaberschaft des Skripts auf tableau-Benutzer und -Gruppe:

 sudo chown tableau:tableau /var/opt/tableau/tableau_server/remove_jndilookup.py

5. Starten Sie eine Sitzung als unberechtigter Benutzer:

sudo su -l tableau

6. Führen Sie das Skript mit dem Flag "--dryrun" im Datenverzeichnis aus, damit das Skript das Verzeichnis durchsucht, aber keine Aktionen an den Dateien ausführt.

./remove_jndilookup.py –dryrun /var/opt/tableau/tableau_server > datadirverification.txt

Wenn der Abschnitt "Findings:" der Testlauf-Ausgabe in verification.txt und in datadirverification.txt keine Einträge enthält, wurden keine weiteren Jars gefunden, die die JndiLookup.class enthalten.
 

7. Beenden Sie die Tableau-Shell:

exit
 

Schritt 4: Starten der Verwaltungsdienste

 
1. Starten Sie die Verwaltungsdienste auf jedem Netzknoten:

sudo /opt/tableau/tableau_server/packages/scripts.$TABLEAU_SERVER_DATA_DIR_VERSION/start-administrative-services

HINWEIS: Sobald jeder Tableau Server-Knoten die Verwaltungsdienste gestartet hat, muss eine Konfigurationsänderung vorgenommen werden, um die war-Dateien neu zu generieren:

2. 2. Ermitteln Sie auf dem Anfangsknoten den aktuellen Wert für gateway.timeout:

tsm configuration get -k gateway.timeout

3. Erhöhen Sie den Wert von gateway.timeout um 1:

tsm configuration set -k gateway.timeout -v <current value +1, example 7201 if set at default>

4. Wenden Sie die ausstehenden Änderungen an:
 
 
tsm pending-changes apply
 

5. Starten Sie Tableau Server

tsm start
 
Die JdniLookup.class-Dateien sollten nun aus allen .jar- und .war-Dateien auf Tableau Server entfernt worden sein.
 

Option 3: Schließen Sie die Sicherheitslücke, indem Sie die Systemumgebungsvariable für die Tableau Server-Versionen v2020.4 und neuer setzen (nur für Tableau Server).

HINWEIS: Dies ist eine temporäre und partielle Problemumgehung für CVE-44228, die die Umgebungsvariable für alle Java-Prozesse auf dem Rechner ändert.
 

Linux-Anweisungen


1. Beenden Sie Tableau Server.

tsm stop

2. Halten Sie die TSM-Verwaltungsdienste an. Führen Sie das folgende Skript aus:

sudo /opt/tableau/tableau_server/packages/scripts.<version>/stop-administrative-services

3. Wechseln Sie zum unberechtigten Benutzer (der Standardbenutzer ist tableau)

sudo su -l tableau

4. Erstellen Sie die Datei log4j.conf mit der Variablen, um die Sicherheitslücke zu schließen:

echo LOG4J_FORMAT_MSG_NO_LOOKUPS=true >> ~/.config/systemd/tableau_server.conf.d/log4j.conf

5. Beenden Sie die Tableau-Shell. Führen Sie den folgenden Befehl aus:

exit

6. Starten Sie die TSM-Verwaltungsdienste. Führen Sie das folgende Skript aus:

sudo /opt/tableau/tableau_server/packages/scripts.<version>/start-administrative-services

7. Wiederholen Sie die Schritte 2 bis 6 für jeden Knoten des Clusters, wenn Sie eine Bereitstellung mit mehreren Knoten durchführen.
 

8. Starten Sie TSM:

tsm start

9. Nach dem Neustart führen Sie den Befehl pgrep -l run- aus, um die pid eines der Tableau-Prozesse zu erhalten.
 

10. Führen Sie sudo strings /proc/<pid>/environ aus, wobei <pid> eine der in Schritt 9 zurückgegebenen pids ist.
 

11. Vergewissern Sie sich, dass LOG4J_FORMAT_MSG_NO_LOOKUPS=true in der Ausgabe von Schritt 10 vorhanden ist.
 
 

Windows-Anweisungen

 

1. Öffnen Sie ein PowerShell-Administratorfenster.
 

2. Beenden Sie Tableau Server auf dem ursprünglichen Knotenpunkt:

tsm stop

3. Starten Sie die TSM-Verwaltungsdienste auf jedem Netzknoten: Führen Sie das folgende Skript aus:

C:\Program Files\Tableau\Tableau Server\packages\scripts.<version>\stop-administrative-services.cmd

4. Erstellen Sie eine Systemumgebungsvariable LOG4J_FORMAT_MSG_NO_LOOKUPS und setzen Sie sie auf "true". Eine kürzere Lösung dafür mit PowerShell ist:
 
[System.Environment]::SetEnvironmentVariable(‘LOG4J_FORMAT_MSG_NO_LOOKUPS’,‘true’,[System.EnvironmentVariableTarget]::Machine)

5. Stellen Sie sicher, dass die Schritte 3 bis 4 für jeden Netzknoten des Clusters abgeschlossen sind, wenn Sie eine Bereitstellung mit mehreren Knotenpunkten durchführen.
 

6. Starten Sie die TSM-Verwaltungsdienste auf jedem Netzknoten. Führen Sie das folgende Skript aus:

C:\Program Files\Tableau\Tableau Server\packages\scripts.<version>\start-administrative-services.cmd

7. Starten Sie Tableau Server auf dem ursprünglichen Knotenpunkt:

tsm start

8. Öffnen Sie ein cmd-Administratorfenster und überprüfen Sie, ob die Umgebungsvariable vorhanden ist, indem Sie den Befehlssatz ausführen. In der Befehlsausgabe sollte die Variable LOG4J_FORMAT_MSG_NO_LOOKUPS=true vorhanden sein.
Zusätzliche Ressourcen
Weitere Informationen zum Status von Tableau Cloud finden Sie auf der Salesforce Trust-Site.
Weitere Informationen finden Sie unter:
Nummer des Knowledge-Artikels

001534225

Anhänge

remove_jndi.zip

1850 KB

remove_jndi_linux.tar.gz

1846 KB

 
Laden
Salesforce Help | Article