РазделыНовостиПоследние новости → Предварительные настройки MQTT...

Используем PuTTY и WinSCP. Подключаемся к нашему броккеру. В директории mosquitto создаём дирректорию conf.d и дирректорию log: cd /etc/mosquitto mkdir conf.d mkdir log Открываем с помощью WinSCP дирректорию /etc/mosquitto и копируем из неё файл mosquitto.conf в дирректорию /etc/mosquitto/conf.d/main.conf.(переименовав его) В конфиге по умолчанию вносим только одну строку которая указывает на католог conf.d в который мы и будем подгружать наши конфиги. Таким образом основной не трогая больше. В основном конфиге находим секцию External config files раскоментируем строку include_dir и через пробел вставим путь до дирректории с нашими конфигами /etc/mosquitto/conf.d. Т.е.строка будет выглядеть так: include_dir /etc/mosquitto/conf.d Сохраняем и забываем про него. Теперь мы будем использовать только пользовательские конфиги. Открываем файл конфигурации /etc/mosquitto/conf.d/main.conf и вносим в него следующие изменения, а вернее всё удаляем и вставляем:

Код:

# Поместите эту вашу локальную конфигурацию в /etc/mosquitto/conf.d  

#================================================================= 
# General configuration 
# =================================================================

pid_file /var/run/mosquitto.pid 
# ================================================================= 
# Default listener 
# =================================================================

#bind_address 1.2.3.4 
#если надо привязываем сервис к ip или domain.name 
# это если у Вас несколько сетевых интерфейсов и необходимо, чтобы броккер работал 
#только на конкретном сетевом интерфейсе 
#port 1883 
#по умолчанию 1883 порт, можно задать другой 
# ================================================================= 
# Persistence 
# =================================================================

#persistence true 
# Если значение равно true, Mosquitto будет подсчитывать количество изменений подписки, сохраненных 
# полученных сообщений и сообщений в очереди и если общее количество превышает 
# autosave_interval, тогда база данных в памяти будет сохранена на диск. 
#persistence_file mosquitto.db 
# Имя файла для постоянной базы данных 
#persistence_location /etc/mosquitto/ 
# Место для постоянной базы данных. 
# ================================================================= 
# Logging 
# =================================================================
log_dest syslog # Ну тут всё понятно. Включаем систему логирования и указываем путь к лог файлу. 
log_dest file /etc/mosquitto/log/mosquitto.log 
log_type debug 
log_type error 
log_type warning 
log_type notice 
log_type information 
# ----------------------------------------------------------------- 
# Default authentication and topic access control 
# ----------------------------------------------------------------- 

#список пользователей и паролей 
password_file /overlay/mosquitto/users.list 
#список доступа пользователей к топикам 
acl_file /overlay/mosquitto/mosquitto.acl
Сохраняем файл. Перезапускаем mosquitto.
Создаём в редакторе vi файл mosquitto.log, сюда будут писаться логи:
vi /etc/mosquitto/log/mosquitto.log
Поставим один пробел и сохраним с записью: :wq
Создаём директрорию mosquitto согласно пути прописанному в файле наcтроек броккера.
Естественно через PuTTY:
Код:

cd /overlay mkdir mosquitto 

cd mosquitto
Редактор VI нам в помощь, создаём пустой файл:
Код:

vi /overlay/mosquitto/users.list

Просто ставим один пробел и сохраняем : :wq
Создаём файл доступа:
Код:

vi /overlay/mosquitto/mosquitto.acl

Просто ставим один пробел и сохраняем : :wq
Как создать пользователя с паролем.
Под Linux:
В PuTTy набираем команду: mosquitto_passwd ? (со знаком вопроса) и смотри помощь по команде.
Код:

mosquitto_passwd is a tool for managing password files for mosquitto.

Usagemosquitto_passwd [-| -Dpasswordfile username
       mosquitto_passwd 
-b passwordfile username password
       mosquitto_passwd 
-U passwordfile
-run in batch mode to allow passing passwords on the command line.
-
create a new password fileThis will overwrite existing files.
-
delete the username rather than adding/updating its password.
-
update a plain text password file to use hashed passwords.

See http://mosquitto.org/ for more information.
Что можно узнать:
Код:

с ключём: -b создание пользователя и пароля(уже шифрованногов готовый файл пользователей.

Указать путь к файлу логин и пароль
с ключём: -с будет создан новый файл пользователей старый будет затёрт.
Указать путь к файлу
с ключём: -D удалить пользователя указать путь к файлу пользователей и имя пользователя
с ключём: -U предварительно создать в текстовом редакторе файл пользователей записав
пользователей в формате
пользователь:пароль
Каждого нового пользователя в новой строке
Например
test:123 
test2
:234 
test3
:345
Потом запустить команду:
Код:

mosquitto_passwd -/overlay/mosquitto/users.list

Все пароли будут зашифрованы. И всё будет выглядеть вот так:
Код:

test:$6$LTkXWubeIaZFfILl$DIDn6XnFSpZ7pM3tvv6xgiGItyGx5RqP2B2RceS0JkX1oRaWmRvdNoBOBjEvyuq4vXbfORJHQYrhgNLyTpKsTw==

test2:$6$LTkXWubeIaZFfIsdgsdgpZ7pM3tvv6xgiGItyGx5RqP2B2RceS0JkX1oRaWmRvdNoBOBjEvyuq4vXbfORJHQYrhgNLyTpKsTw==
test3:$6$LTkXWubeIafdhdfhdhd6XnFSpZ7pM3tvv6xgiGItyGx5RqP2B2RceS0JkX1oRaWmRvdNoBOBjEvyuq4vXbfORJHQYrhgNLyTpKsTw==
Создание пароля под Windows: Ставим mosquitto под Windows. Заходим в папку куда его установили создаем текстовый файл:
users.list.
В этой же папке удерживая клавишу shift кликаем на свободном месте правой кнопкой мышки.
Выбираем из меню "Открыть окно команд".
Вносим следующую команду:
Код:

mosquitto_passwd -b D:\mosquitto\user.list логин_пользователя пароль_пользователя

Соответственно внеся свои данные. Нажимаем клавишу Enter. Смотрим каким нибудь текстовым редактором. И видим , что создался пользователь и через : ХЭШ его пароля. Так же создаём файл:
mosquitto.acl
и вписываем в две(обязательно) строки
Код:

user ИмяПользователя

topic 
#
Знак # обозначает, что данный пользователь может подписаться на все мыслимые здесь топики. Сохраняем.
Перезагружаем броккера.
Или запускаем его командой:
mosquitto -c /etc/mosquitto/mosquitto.conf
Что мы сделали?
Теперь все публикации и подписки может осуществлять только авторизованные пользователи. Причем настраивая списки доступа можно и авторизованным пользователям дать или запретить доступ к тем или иным топикам. Важно!!! Т.к. это Linux, то регистр букв важен.

20.01.2019 14:24 Автор/источник: Николай

Комментировать

Вы не залогинены! Регистрация