
Exploit per CVE-2023-37582 che prende di mira Apache RocketMQ, una piattaforma di messaggistica distribuita con bassa latenza, alta produttività e supporto per messaggistica transazionale, autenticazione e crittografia.
Apache RocketMQ è una piattaforma di messaggistica e streaming distribuita con bassa latenza, elevate prestazioni e affidabilità, capacità a livello di trilioni e scalabilità flessibile.
Offre una varietà di funzionalità:
Questo paragrafo ti guida attraverso i passaggi per installare RocketMQ in diversi modi. Per lo sviluppo e i test locali, verrà creata una sola istanza per ogni componente.
RocketMQ funziona su tutti i principali sistemi operativi e richiede solo una versione Java JDK 8 o superiore.
Per verificare, esegui java -version:
$ java -version
java version "1.8.0_121"
Per gli utenti Windows, fai clic qui per scaricare la release binaria 4.9.3 di RocketMQ,
decomprimila sul tuo disco locale, ad esempio D:\rocketmq.
Per gli utenti macOS e Linux, esegui i seguenti comandi:
# Scarica la release dal mirror Apache
$ wget https://archive.apache.org/dist/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
# Decomprimi la release
$ unzip rocketmq-all-4.9.3-bin-release.zip
Prepara un terminale e spostati nella directory bin estratta:
$ cd rocketmq-4.9.3/bin
1) Avvia NameServer
NameServer rimarrà in ascolto su 0.0.0.0:9876, assicurati che la porta non sia utilizzata da altri sulla macchina locale, quindi procedi come segue.
Per gli utenti macOS e Linux:
### avvia Name Server
$ nohup sh mqnamesrv &
### verifica se Name Server è stato avviato correttamente
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
Per gli utenti Windows, devi prima impostare le variabili d'ambiente:
ROCKETMQ_HOME="D:\rocketmq".Poi spostati nella directory rocketmq, digita ed esegui:
$ mqnamesrv.cmd
The Name Server boot success...
2) Avvia Broker
Per gli utenti macOS e Linux:
### avvia Broker
$ nohup sh bin/mqbroker -n localhost:9876 &
### verifica se Broker è stato avviato correttamente, es: IP del Broker è 192.168.1.2, nome del Broker è broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
Per gli utenti Windows:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Puoi eseguire RocketMQ sulla tua macchina all'interno di container Docker,
verrà utilizzata la rete host per esporre la porta di ascolto nel container.
1) Avvia NameServer
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Avvia Broker
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
Puoi anche eseguire un cluster RocketMQ all'interno di un cluster Kubernetes usando RocketMQ Operator.
Prima di procedere, assicurati che kubectl e il relativo file kubeconfig siano installati sulla tua macchina.
1) Installa CRDs
### installa CRDs
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### verifica se CRDs sono state installate correttamente
$ 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
### verifica se l'operatore è in esecuzione
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj 1/1 Running 0 93s
2) Crea Istanza del Cluster
### crea risorsa cluster RocketMQ
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### verifica se le risorse del cluster sono in esecuzione
$ kubectl get sts
NAME READY AGE
broker-0-master 1/1 107m
broker-0-replica-1 1/1 107m
name-service 1/1 107m