mosquitto(mqtt)服務部署+redis 認證模塊

物聯網交流羣:651219170

功能說明

運行的環境(系統版本,mosquitto版本,redis版本)

1.centos6.5 及以上.
2.mosquitto-1.4.9
3.redis 3.0.1

部署準備(外部依賴)

1.openssl
2.c-ares-devel
3.libc-ares2
4.libuuid-devel
5.gcc
6.cmake
7.hiredis

配置文件的說明

部署環境搭建步驟

0.安裝redis
  wget http://download.redis.io/releases/redis-3.0.1.tar.gz 
  tar xzf redis-3.0.1.tar.gz 
  cd redis-3.0.1 
  make && make install 
  mkdir /etc/redis && cp redis.conf /etc/redis/6379.conf 
  後臺啓動 
  vim /etc/redis/6379.conf 
  修改文件 
  daemonize yes

  修改 redis 的啓動腳步 
  vim utils/redis_init_script 
  把原註釋替換爲

  #!/bin/sh
  # chkconfig: 2345 90 10
  # description: Redis is a persistent key-value database
  #
  設置開機啓動 
  cp utils/redis_init_script /etc/init.d/redisd 
  chkconfig redisd on

1.安裝外部依賴
  1.1 yum 安裝依賴
  yum install openssl-devel
  yum install c-ares-devel 
  yum install libuuid-devel
  yum install gcc* 
  1.2 編譯安裝hiredis客戶端
    1.2.1 下載tar.gz文件
      wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
    1.2.2 解壓編譯安裝
      tar -zxvf v0.13.3.tar.gz
      cd hiredis-0.13.3
      make -j8
      make install
2.安裝mosquitto實例:
  2.1 下載tar.gz文件
     wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
  2.2 解壓
    tar -zxvf mosquitto-1.4.9.tar.gz
  2.3 進入安裝目錄
    cd mosquitto-1.4.9
  2.4 編譯 
    sudo make
    sudo make install
  2.5 加載.so.1文件
    vim /etc/ld.so.conf.d/user.conf
    加入內容:
    /usr/local/lib

    加載以上配置
    ldconfig
  2.6 更新動態鏈接庫
    sudo ldconfig
  2.7 增加mosquitto用戶
    adduser mosquitto
  2.8 測試mosquitto安裝
    啓動mosquitto
      mosquitto -c mosquitto.conf
    使用"功能驗證建議"中的工具進行連接測試
3.安裝redis認證插件
  3.1 下載tar.gz
    wget https://github.com/jpmens/mosquitto-auth-plug/archive/0.1.2.tar.gz
  3.2 解壓,修改配置
    tar -zxvf 0.1.2.tar.gz
    cd mosquitto-auth-plug-0.1.2
    cp config.mk.in config.mk
  3.3 編輯config.mk指定開啓redis,mosquitto源碼目錄
    vim config.mk

    修改如下配置項:
    BACKEND_MYSQL ?= no
    BACKEND_REDIS ?= yes
    MOSQUITTO_SRC = /usr/local/mosquitto-env/mosquitto-1.4.9/src

    編譯
    make 
  3.4 mosquitto目錄下創建plugin目錄
    mkdir plugin
  3.5 將插件中的.so文件複製到plugin目錄下
    cp auth-plug.so mosquitto/plugin
  3.6 修改mosquitto的配置文件
    vim mosquitto.conf

    修改如下配置項
    allow_anonymous false
    在這一行下新增
    auth_plugin /usr/local/mosquitto-env/mosquitto-1.4.9/plugin/auth-plug.so
    auth_opt_backends redis
    auth_opt_redis_host 192.168.25.162
    auth_opt_redis_port 6379
    auth_opt_redis_userquery GET %s
  3.7 在認證插件中使用np.c文件生成密碼(例如,密碼是admin的加密方式如下)
    ./np -p admin
    得到輸出: PBKDF2$sha256$901$lzMxwbgXSoPWfG3U$J/UVQWp39U8AQWpaOZhO/Rf6hlqVogm0
  3.8 將用戶名和加密後的密碼添加到redis中
    set admin PBKDF2$sha256$901$lzMxwbgXSoPWfG3U$J/UVQWp39U8AQWpaOZhO/Rf6hlqVogm0

相關注意事項

功能驗證建議

1.根據如下url下載不同操作系統下的mosquitto圖形化客戶端工具
  https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.1.1/
2. 新建連接 
  連接地址:tcp://url:port(默認端口爲1883)
  輸入用戶名密碼 admin admin
  連接,連接成功即完成搭建
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章