
Exploit für CVE-2023-37582, der auf Apache RocketMQ abzielt, eine verteilte Messaging-Plattform mit geringer Latenz, hohem Durchsatz und Unterstützung für transaktionales Messaging, Authentifizierung und Verschlüsselung.
Apache RocketMQ ist eine verteilte Messaging- und Streaming-Plattform mit geringer Latenz, hoher Leistung und Zuverlässigkeit, Kapazität im Billionenbereich und flexibler Skalierbarkeit.
Es bietet eine Vielzahl von Funktionen:
Dieser Abschnitt führt Sie durch die Schritte zur Installation von RocketMQ auf verschiedene Weise. Für die lokale Entwicklung und das Testen wird für jede Komponente nur eine Instanz erstellt.
RocketMQ läuft auf allen gängigen Betriebssystemen und erfordert lediglich ein installiertes Java JDK Version 8 oder höher. Zur Überprüfung führen Sie java -version aus:
$ java -version
java version "1.8.0_121"
Für Windows-Benutzer klicken Sie hier, um die RocketMQ-Binärversion 4.9.3 herunterzuladen, und entpacken Sie sie auf Ihre lokale Festplatte, z. B. D:\rocketmq.
Für macOS- und Linux-Benutzer führen Sie die folgenden Befehle aus:
# Download release from the Apache mirror
$ wget https://archive.apache.org/dist/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
# Unpack the release
$ unzip rocketmq-all-4.9.3-bin-release.zip
Öffnen Sie ein Terminal und wechseln Sie in das entpackte Verzeichnis bin:
$ cd rocketmq-4.9.3/bin
1) NameServer starten
Der NameServer lauscht auf 0.0.0.0:9876. Stellen Sie sicher, dass der Port auf dem lokalen Rechner nicht von anderen Prozessen verwendet wird, und gehen Sie dann wie folgt vor.
Für macOS- und Linux-Benutzer:
### start Name Server
$ nohup sh mqnamesrv &
### check whether Name Server is successfully started
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
Für Windows-Benutzer müssen Sie zuerst Umgebungsvariablen festlegen:
ROCKETMQ_HOME="D:\rocketmq" hinzu.Wechseln Sie dann in das Verzeichnis rocketmq, geben Sie Folgendes ein und führen Sie es aus:
$ mqnamesrv.cmd
The Name Server boot success...
2) Broker starten
Für macOS- und Linux-Benutzer:
### start Broker
$ nohup sh bin/mqbroker -n localhost:9876 &
### check whether Broker is successfully started, eg: Broker's IP is 192.168.1.2, Broker's name is broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
Für Windows-Benutzer:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Sie können RocketMQ auf Ihrem eigenen Rechner in Docker-Containern ausführen. Das host-Netzwerk wird verwendet, um den lauschenden Port im Container verfügbar zu machen.
1) NameServer starten
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Broker starten
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
Sie können auch einen RocketMQ-Cluster innerhalb eines Kubernetes-Clusters mit dem RocketMQ Operator ausführen. Stellen Sie vor Ihren Aktionen sicher, dass kubectl und die zugehörige kubeconfig-Datei auf Ihrem Rechner installiert sind.
1) CRDs installieren
### install CRDs
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### check whether CRDs is successfully installed
$ kubectl get crd | grep rocketmq.apache.org
brokers.rocketmq.apache.org 2022-05-12T09:23:18Z
consoles.rocketmq.apache.org 2022-05-12T09:23:19Z
nameservices.rocketmq.apache.org 2022-05-12T09:23:18Z
topictransfers.rocketmq.apache.org 2022-05-12T09:23:19Z
### check whether operator is running
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj 1/1 Running 0 93s
2) Cluster-Instanz erstellen
### create RocketMQ cluster resource
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### check whether cluster resources is running
$ kubectl get sts
NAME READY AGE
broker-0-master 1/1 107m
broker-0-replica-1 1/1 107m
name-service 1/1 107m
Wir begrüßen stets neue Beiträge, sei es für einfache Bereinigungen, große neue Funktionen oder andere materielle Belohnungen. Weitere Details finden Sie hier.
Apache-Lizenz, Version 2.0 Copyright (C) Apache Software Foundation
Diese Distribution enthält kryptografische Software. Das Land, in dem Sie sich derzeit aufhalten, kann Beschränkungen für den Import, den Besitz, die Verwendung und/oder die Wiederausfuhr von Verschlüsselungssoftware in ein anderes Land haben. Bevor Sie Verschlüsselungssoftware verwenden, prüfen Sie bitte die Gesetze, Vorschriften und Richtlinien Ihres Landes bezüglich Import, Besitz, Verwendung und Wiederausfuhr von Verschlüsselungssoftware, um festzustellen, ob dies erlaubt ist. Siehe http://www.wassenaar.org/ für weitere Informationen.
Das US-Handelsministerium, Bureau of Industry and Security (BIS), hat diese Software als Export Commodity Control Number (ECCN) 5D002.C.1 eingestuft. Dies umfasst Informationssicherheitssoftware, die kryptografische Funktionen mit asymmetrischen Algorithmen verwendet oder ausführt. Die Form und Art dieser Distribution der Apache Software Foundation macht sie sowohl für den Objektcode als auch für den Quellcode für den Export unter der Lizenzausnahme ENC Technology Software Unrestricted (TSU) qualifiziert (siehe BIS Export Administration Regulations, Abschnitt 740.13).
Im Folgenden finden Sie weitere Details zur enthaltenen kryptografischen Software:
Diese Software verwendet Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/), um die Authentifizierung sowie die Ver- und Entschlüsselung von Daten zu unterstützen, die über das Netzwerk zwischen Diensten gesendet werden.