Ubuntu 22.04 - Eclipse Mosquitto Broker 설치

사전 단계: [OS 확인]

> uname -a
Linux svr2 6.8.0-57-generic #59~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Mar 19 17:07:41 UTC 2 x86_64 x86_64 x86_64 GNU/Linux


[MQTT 설치]

1. Ubuntu 22.04 업데이트

> sudo apt update

2. PPA Mosquitto repository 추가

> sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa

3. Mosquitto 설치

> sudo apt install mosquitto mosquitto-clients

4. 버전 확인 및 서비스 상태 확인

> mosquitto -h
> sudo systemctl status mosquitto

5. 관리자 및 암호 생성(예: p@ssw0rd)

> sudo mosquitto_passwd -c /etc/mosquitto/passwd mqttuser
Password:
Reenter password:

[옵션] 6. SSL 설정(미설정 시 1883만 사용)

#
참고: 외부 공용 서비스를 위해 Let's Encrypt SSL 설정 시에는 아래 참고

https://ko.linux-console.net/?p=30559
#

7. 구성파일 편집(포트 및 암호파일 경로 지정)

> sudo nano /etc/mosquitto/conf.d/default.conf

== 아래 추가 ==

# port 지정 시 localhost에서만 접근 가능!
##port 1883

# persistence 설정은 /etc/mosquitto/mosquitto.conf에서 변경
##persistence true
##persistence_location /mosquitto/data

# Logging
# log 경로 설정은 /etc/mosquitto/mosquitto.conf에서 변경
# 기본 경로: /var/log/mosquitto/mosquitto.log
##log_dest file /mosquitto/log/mosquitto.log
log_timestamp true
log_timestamp_format %Y-%m-%dT%H:%M:%S

# Security
allow_anonymous false
listener 1883
# SSL 구성 시 아래 8883 포트 및 인증서 설정
##listener 8883
##certfile /etc/mosquitto/certs/server.crt
##keyfile /etc/mosquitto/certs/server.key

# Default authentication and topic access control
password_file /etc/mosquitto/passwd
acl_file /etc/mosquitto/acl

============

8. ACL 파일 편집

> sudo nano /etc/mosquitto/acl

== 아래 추가 ==

user mqttuser
topic readwrite personal/thermidor/+
topic readwrite personal/thermidor/+/+
topic readwrite personal/thermidor/+/+/+

============

9. 파일 접근 권한 설정

mosquitto 사용자/그룹의 배타적 사용을 위해...

> sudo chown mosquitto:mosquitto /etc/mosquitto/passwd /etc/mosquitto/acl
> sudo chmod 600 /etc/mosquitto/passwd /etc/mosquitto/acl

10. 서비스 재시작

> sudo systemctl restart mosquitto

[옵션] 11. 네트워크 도구 설치 및 열린 포트 확인

> sudo apt install net-tools
> sudo netstat -anop | grep -F 1883

[옵션] 12. 방화벽 설정(외부에서 포트가 열리지 않을 경우)

> sudo ufw allow 1883
> # SSL 구성 시 아래 8883 포트 오픈
> ##sudo ufw allow 8883

[옵션] 13. 로컬 테스트

수신 측

> mosquitto_sub -h localhost -t "personal/thermidor/RV/+/+" -u "mqttuser" -P "p@ssw0rd"

송신 측

> mosquitto_pub -h localhost -t "personal/thermidor/RV/test/Service" -m "CAPTURE-1" -u "mqttuser" -P "p@ssw0rd"



- End Of Document -



Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]