
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