
CVE-2023-37582를 대상으로 하는 익스플로잇으로, 저지연, 고처리량, 트랜잭션 메시징, 인증 및 암호화를 지원하는 분산 메시징 플랫폼인 Apache RocketMQ를 겨냥합니다.
Apache RocketMQ는 낮은 지연 시간, 높은 성능과 신뢰성, 조 단위 용량 및 유연한 확장성을 갖춘 분산 메시징 및 스트리밍 플랫폼입니다.
다양한 기능을 제공합니다:
이 단락에서는 다양한 방법으로 RocketMQ를 설치하는 방법을 안내합니다. 로컬 개발 및 테스트를 위해 각 구성 요소에 대해 하나의 인스턴스만 생성됩니다.
RocketMQ는 모든 주요 운영 체제에서 실행되며 Java JDK 버전 8 이상만 설치되어 있으면 됩니다.
확인하려면 java -version을 실행하십시오:
$ java -version
java version "1.8.0_121"
Windows 사용자는 여기를 클릭하여 4.9.3 RocketMQ 바이너리 릴리스를 다운로드하고,
로컬 디스크(예: D:\rocketmq)에 압축을 풉니다.
macOS 및 Linux 사용자는 다음 명령을 실행하십시오:
# Apache 미러에서 릴리스 다운로드
$ wget https://archive.apache.org/dist/rocketmq/4.9.3/rocketmq-all-4.9.3-bin-release.zip
# 릴리스 압축 풀기
$ unzip rocketmq-all-4.9.3-bin-release.zip
터미널을 준비하고 압축이 풀린 bin 디렉토리로 이동합니다:
$ cd rocketmq-4.9.3/bin
1) NameServer 시작
NameServer는 0.0.0.0:9876에서 수신 대기합니다. 로컬 머신에서 해당 포트가 다른 프로세스에서 사용 중이 아닌지 확인한 후 다음을 수행하십시오.
macOS 및 Linux 사용자:
### Name Server 시작
$ nohup sh mqnamesrv &
### Name Server가 성공적으로 시작되었는지 확인
$ tail -f ~/logs/rocketmqlogs/namesrv.log
The Name Server boot success...
Windows 사용자는 먼저 환경 변수를 설정해야 합니다:
ROCKETMQ_HOME="D:\rocketmq"를 추가합니다.그런 다음 rocketmq 디렉토리로 변경하고 다음을 입력하여 실행합니다:
$ mqnamesrv.cmd
The Name Server boot success...
2) Broker 시작
macOS 및 Linux 사용자:
### Broker 시작
$ nohup sh bin/mqbroker -n localhost:9876 &
### Broker가 성공적으로 시작되었는지 확인, 예: Broker IP는 192.168.1.2, Broker 이름은 broker-a
$ tail -f ~/logs/rocketmqlogs/broker.log
The broker[broker-a, 192.169.1.2:10911] boot success...
Windows 사용자:
$ mqbroker.cmd -n localhost:9876
The broker[broker-a, 192.169.1.2:10911] boot success...
Docker 컨테이너 내에서 자신의 머신에 RocketMQ를 실행할 수 있습니다.
host 네트워크를 사용하여 컨테이너의 수신 포트를 노출합니다.
1) NameServer 시작
$ docker run -it --net=host apache/rocketmq ./mqnamesrv
2) Broker 시작
$ docker run -it --net=host --mount source=/tmp/store,target=/home/rocketmq/store apache/rocketmq ./mqbroker -n localhost:9876
RocketMQ Operator를 사용하여 Kubernetes 클러스터 내에서 RocketMQ 클러스터를 실행할 수도 있습니다.
작업 전에 머신에 kubectl 및 관련 kubeconfig 파일이 설치되어 있는지 확인하십시오.
1) CRD 설치
### CRD 설치
$ git clone https://github.com/apache/rocketmq-operator
$ cd rocketmq-operator && make deploy
### CRD가 성공적으로 설치되었는지 확인
$ 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
### operator가 실행 중인지 확인
$ kubectl get pods | grep rocketmq-operator
rocketmq-operator-6f65c77c49-8hwmj 1/1 Running 0 93s
2) 클러스터 인스턴스 생성
### RocketMQ 클러스터 리소스 생성
$ cd example && kubectl create -f rocketmq_v1alpha1_rocketmq_cluster.yaml
### 클러스터 리소스가 실행 중인지 확인
$ kubectl get sts
NAME READY AGE
broker-0-master 1/1 107m
broker-0-replica-1 1/1 107m
name-service 1/1 107m
단순한 정리 작업부터 대규모의 새로운 기능 또는 기타 물질적 보상에 이르기까지 새로운 기여는 언제나 환영합니다. 자세한 내용은 여기를 참조하십시오.
Apache License, Version 2.0 Copyright (C) Apache Software Foundation
이 배포본에는 암호화 소프트웨어가 포함되어 있습니다. 현재 거주하고 있는 국가에서는 암호화 소프트웨어의 수입, 소지, 사용 및/또는 타국으로의 재수출에 대한 제한이 있을 수 있습니다. 암호화 소프트웨어를 사용하기 전에 해당 국가의 법률, 규정 및 정책을 확인하여 암호화 소프트웨어의 수입, 소지, 사용 및 재수출이 허용되는지 확인하십시오. 자세한 내용은 http://www.wassenaar.org/를 참조하십시오.
미국 상무부 산업안보국(BIS)은 이 소프트웨어를 정보 보안 소프트웨어로 분류하였으며, 비대칭 알고리즘을 사용하거나 암호화 기능을 수행하는 수출 통제 번호(ECCN) 5D002.C.1에 해당합니다. 이 Apache Software Foundation 배포본의 형식과 방식은 객체 코드와 소스 코드 모두에 대해 License Exception ENC Technology Software Unrestricted (TSU) 예외(BIS 수출 관리 규정, Section 740.13 참조)에 따라 수출이 가능합니다.
다음은 포함된 암호화 소프트웨어에 대한 자세한 내용입니다:
이 소프트웨어는 Apache Commons Crypto (https://commons.apache.org/proper/commons-crypto/)를 사용하여 인증 및 서비스 간 네트워크를 통해 전송되는 데이터의 암호화 및 복호화를 지원합니다.