티스토리 뷰

Snippets

Ubuntu에서 mosquitto 컴파일 및 mysql 연동

Snipper AquaBlue 2016. 2. 23. 16:14

* 본 문서는 ubuntu 14.04 LTS 기준으로 작성되었습니다.

* docker에서 진행됨으로 ubuntu의 docker 공식 이미지를 사용하였습니다.


1. 사전 준비

sudo apt-get install build-essential libc-ares-dev uuid-dev libssl-dev libcurl4-openssl-dev libmysqlclient-dev
sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto


2. mosquitto 다운로드 및 컴파일

http://mosquitto.org/download/ 사이트에서 최신 source 다운로드(현재 버전은 1.4.8)

cd ~
wget http://mosquitto.org/files/source/mosquitto-1.4.8.tar.gz
tar xvf mosquitto-1.4.8.tar.gz
cd mosquitto-1.4.8
make
sudo make install

sudo mosquitto 로 설치 확인

3. mosquitto-auth-plugin 다운로드 및 컴파일. git허브에서 다운로드 받으므로 git 설치

sudo apt-get install git
cd ~
git clone https://github.com/jpmens/mosquitto-auth-plug.git
cd mosquitto-auth-plug
cp config.mk.in config.mk
make & make install

4. 컴파일 된 auth-plug.so 파일 이동 저장 및 mosquitto 설정 파일 생성

sudo mv auth-plug.so /usr/local/lib/
cd /etc/mosquitto/
sudo cp mosquitto.conf.example mosquitto.conf
vi mosquitto.conf

5. 환결설정

auth_plugin /usr/local/lib/auth-plug.so
auth_opt_backends mysql
auth_opt_host localhost
auth_opt_port 3306
auth_opt_dbname testdb
auth_opt_user test
auth_opt_pass 1111
auth_opt_userquery SELECT pw FROM users WHERE username = '%s'
auth_opt_superquery SELECT COUNT(*) FROM users WHERE username = '%s' AND super = 1
auth_opt_aclquery SELECT topic FROM acls WHERE (username = '%s') AND (rw >= %d)
auth_opt_anonusername AnonymouS

6. mosquitto 실행

sudo mosquitto -c /etc/mosquitto/mosquitto.conf


7. 테스트

sudo apt-get install mosquitto-clients
mosquitto_pub -t 'topic' -u username -P password -m 'message'
mosquitto_sub -t 'topic' -u username -P password



mosquitto-auth-plugin의 비밀번호는 PBKDF2 로 해쉬된 값을 저장해야 합니다. 이 해쉬를 만드는 방법중 하나는 mosquitto-auth-plugin을 clone 한 디렉토리 안에 있는 np 툴을 이용하면 비밀번호가 해쉬되어 나옵니다. 이 도구를 사용하면 됩니다.


mysql의 기본적인 스키마 구성 및 권한 설정은 https://github.com/jpmens/mosquitto-auth-plug 에서 확인이 가능합니다.



댓글
댓글쓰기 폼
공지사항
최근에 달린 댓글
Total
125,395
Today
21
Yesterday
13
링크
«   2021/04   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
글 보관함