본문 바로가기
Programming/Java

[MQTT] window & linux mosquitto 설치 방법

by minux_s 2021. 1. 29.
728x90

mosquitto는 전에 mqtt에 대한 글을 쓰면서 말한 적이 있기에 설명은 넘어가도록 하겠습니다.

 

https://minuxsthing.tistory.com/entry/MQTT-MQTT-broker-%EC%A2%85%EB%A5%98

 

[MQTT] MQTT broker 종류

1. [MQTT란?] MQTT는 사물 통신(M2M), 사물 인터넷(IoT)과 같이 대역폭이 제한된 통신 환경에 최적화하여 TCP 기반으로 개발된 푸시 기술(push technology), 최소한의 전력과 패킷량으로 통신하는 프로토콜입

minuxsthing.tistory.com

1. [WINDOW에서 설치]

우선, mosquitto 설치 프로그램은

https://mosquitto.org/download/

 

Download

Source mosquitto-2.0.6.tar.gz (319kB) (GPG signature) Git source code repository (github.com) Older downloads are available at https://mosquitto.org/files/ Binary Installation The binary packages li

mosquitto.org

mosquitto 홈페이지에서 다운로드할 수 있습니다. 

실행파일을 실행 후에는 순서대로 진행해주시고, 완료되고 나면 경로에 mosquitto라는 폴더가 생성되면서 

다음과 같이 파일들이 생성됩니다.

 

mosquitto 실행방법은 cmd를 통해서 mosquitto 폴더 위치까지 이동한 다음에 mosquitto -c (conf파일의 이름)로 실행하시면 됩니다.

그냥 mosquitto.exe -v로 실행하면 기본설정으로 실행되며 localhost (127.0.0.1) 주소에 포트는 1883으로 열리게 됩니다.

 

저처럼 호스트 PC 또는 가상 PC의 IP 주소로 연결하고 싶으신 분은 conf 파일을 수정 후에 mosquitto -c (conf파일 이름)으로 실행해주셔야 합니다.

ex) mosquitto -c msqt.conf

 

제 mosquitto.conf 파일 설정은 2가지가 있는데

 

1. pwfile을 통한 보안 설정시 mosquitto.conf 파일 내용

  • listener 1883 (PC의 IP 주소)
    - 접속할 IP 주소 & 포트번호
  • connection_messages true
    - true로 설정할 경우 클라이언트의 연결/연결끊김을 포함
  • allow_anonymous false
    -  true로 설정하면 아무나 브로커 서버에 접근이 가능
    -  false false로 설정하면 password_file옵션으로 인증된 사용자를 제어
  • password_file pwfile.txt
    - 접근 권한 사용자 정보
  • log_dest syslog
  • log_dest stdout
  • log_dest topic
  • log_type error
  • log_type warning
  • log_type notice
  • log_type information
  • log_timestamp true

mosquitto에서 지원하는 pwfile을 통해서 연결을 요청하는 클라이언트의 id와 password가 mosquitto 폴더 안에 있는 pwfile에 있는지 확인하여 검증하는 방법입니다.

 

pwfile에 등록하는 방법은

cmd를 통해서 mosquitto_passwd 실행파일을 실행시키면서 정보를 기록할 파일 이름과 생성할 ID를 입력하면 mosquitto_passwd가 실행되면서 password를 입력하게 됩니다.

2. SSL 보안 설정 시 mosquitto.conf 파일의 내용

  • listener 1883 (PC IP 주소)
  • log_dest syslog
  • log_dest stdout
  • log_dest topic
  • log_type error
  • log_type warning
  • log_type notice
  • log_type information
  • connection_messages true
  • allow_anonymous true
  • require_certificate true
  • cafile (본인 ca.crt 경로)
    - ex) cafile C:\openssl\bin\ca.crt
  • certfile (본인 broker.crt 경로)
    - ex) certfile C:\openssl\bin\broker.crt
  • keyfile (본인 broker.key 경로)
    - ex) C:\openssl\bin\broker.key

이렇게 설정해주고 클라이언트에서 연결 시 ssl://IP주소:1883로 연결하면 된다.

 

SSL 파일 생성 방법에 대해서는 추후 설명글을 올리겠습니다!!

 

2. [linux에서 설치]

mosquitto 사용법은 동일하기에 여기서는 linux에 설치하는 방법만 소개하도록 하겠습니다.

 

저는 설치환경이 Red-Hat인 CentOS 7이었기에 조금 다를 수 도 있습니다.

 

먼저 yum -y install epel-release라는 것을 설치해주어야 합니다.

설치가 완료되고나면 yum -y install mosquitto 명령어를 통해서 mosquitto 설치를 할 수 있습니다.

 

완료되고나면 window에서와 같이 /etc/ 폴더 안에 mosquitto라는 폴더가 생성되고 mosuqitto.conf 파일이 있습니다.

 

728x90

댓글