Вернуть старое меню
Бесплатно, 24/7 8 (800) 775-97-42
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Выбрать VPS
Маркетплейс
О нас
Сообщество
Поддержка
Баланс:
Бонусы:
Войти
Выйти
Зарегистрироваться
ГОТОВЫЕ ТАРИФЫ
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Card icon Своя конфигурация
Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
О компании Входим в топ-15 IAAS в России
Дата-центры 16 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Поможем с гос. лицензированием
Бонусная программа Накопительная система лояльности
Card icon Пинг до дата-центров
Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
КЛИЕНТАМ
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Card icon Соцсети
Наш блог на Хабре, выступления, новости компании.
Присоединиться
Card icon Бесплатный тест на 3 дня
Только для новых пользователей. Возьмите на тест любой сервер до 3000 рублей, проверьте приложения и программы, установив их на VPS.
Попробовать
АККАУНТ Мои серверы Домены Заказать Настройки Партнеру
Бесплатно, 24/7 8 (800) 775-97-42
Mobile menu button
Выбрать VPS
Mobile card icon
Своя конфигурация Удобный конфигуратор позволит вам настроить любой параметр сервера, а мы предложим за него лучшую цену.
Собрать
Ref icon
VPS Старт От 139 рублей/мес
Ref icon
VPS Мощные Мощные серверы по выгодной цене
Ref icon
VPS Windows Удобные конфигурации для работы с ОС Windows
Ref icon
VPS Быстрые NVMe Максимальная скорость с промышленными NVMe дисками
Ref icon
VPS Plesk Настройте сервер под себя в несколько кликов
Ref icon
VPS с 1C для бухгалтеров Оптимизированные под 1C серверы
Ref icon
VPS для трейдинга Установите торговые терминалы за 1 клик
Ref icon
VPS для геймеров Мощное железо для мощных рейдов
Ref icon
VPS для бизнеса Настроить любой параметр сервера
Ref icon
Посмотреть все тарифы
Ref icon
Бесплатный тест на 3 дня
Маркетплейс
О нас
Mobile card icon
Пинг до дата-центров Измерьте ping от вас до всех наших дата-центров. Мы подберем тот, который подходит для вас идеально.
Измерить
О компании Входим в топ-15 IAAS в России
Дата-центры 16 ЦОД уровня Tier III в 7 странах
Аттестация по ФСТЭК Накопительная система лояльности
Бонусная программа Накопительная система лояльности
Сообщество
Mobile card icon
Соцсети Наш блог на Хабре, выступления, новости компании.
Присоединиться
Справочник Пошаговые инструкции, как настроить VPS
FAQ Частые вопросы о настройке VPS и сервисе
Новости и события Новости сервиса, информация о событиях и спецпроектах компании
Поддержка
Country flag RU
Country flag EN
Country flag DE
₽ RUB
$ USD
€ EUR
Войти
Зарегистрироваться
Личный кабинет
Мои серверы
Домены
Баланс: Бонусы:
Заказать
Настройки
Партнеру
Выйти
Мои серверы
Домены
Заказать
Настройки
Партнеру
  • ВЫБРАТЬ VPS
  • ДАТА-ЦЕНТРЫ
  • СПРАВОЧНИК
  • ПОДДЕРЖКА
  • ВОЙТИ
RuVDS/Справочник/Развертывание ПО на VPS сервере/Настройка аутентификации и шифрования в Mosquitto на Ubuntu 24.04

Настройка аутентификации и шифрования в Mosquitto на Ubuntu 24.04

321 просмотров 1 2025-03-18

Mosquitto − популярный брокер сообщений MQTT, широко используемый для IoT-устройств и распределённых систем. Установленный с настройками по умолчанию, Mosquitto не обеспечивает надёжной защиты данных, что делает его уязвимым для атак. В этой статье мы начнём рассматривать основные методы защиты Mosquitto на Ubuntu 24.04, в частности, разберём, как производится настройка аутентификации и шифрования соединений с помощью TLS. Два данных аспекта, описанные далее, позволят повысить безопасность созданной вами MQTT-инфраструктуры.

Настройка аутентификации

Первоначально мы запустили Mosquitto, используя анонимное подключение, то есть без какой-либо аутентификации. Теперь же необходимо обеспечить доступ к брокеру с помощью строго определённых учётных записей. Исходя из этого, на первом этапе настройки аутентификации нужно будет создать новый файл для хранения паролей:

$ sudo mosquitto_passwd -c /etc/mosquitto/passwd mosquitto-user

Здесь:

  • опция -c указывает на то, что в ходе выполнения команды будет создан именно новый файл, и если такой файл на данный существует, он будет перезаписан;
  • /etc/mosquitto/passwd − создаваемый файл паролей;
  • mosquitto-user − пользователь, при помощи которого будет осуществляться подключение к брокеру.

В ходе выполнения команда попросит указать пароль для создаваемой учётной записи.

Если нужно в уже существующий файл добавить ещё одного пользователя, используйте подобную команду, но уже без опции -c:

$ sudo mosquitto_passwd /etc/mosquitto/passwd another-mosquitto-user

Для того, чтобы процессы Mosquitto получили доступ к файлу паролей, измените его владельца и группу на пользователя и группу mosquitto:

$ sudo chown mosquitto:mosquitto /etc/mosquitto/passwd

Далее, откройте для редактирования конфигурационный файл Mosquitto, чтобы внести в него некоторые изменения:

$ sudo nano /etc/mosquitto/mosquitto.conf

А именно необходимо закрыть анонимный доступ к брокеру и указать путь к файлу паролей:

allow_anonymous false
password_file /etc/mosquitto/passwd

Если в файле присутствует строка allow_anonymous true, удалите её или закомментируйте. После чего закройте файл mosquitto.conf, сохранив внесённые изменения, и перезапустите службу mosquitto:

$ sudo systemctl restart mosquitto

С этого момента запуск подписки на тестовый MQTT-топик test от брокера Mosquitto нужно будет производить с указанием соответствующих имени пользователя и пароля:

$ mosquitto_sub -h X.X.X.X -t test -u "mosquitto-user" -P "Password"

В данном случае X.X.X.X − IP-адрес или имя хоста, на котором производится запуск брокера, Password − пароль, указанный при создании пользователя mosquitto-user.

Шифрование данных с помощью TLS

Для обеспечения конфиденциальности и безопасности передаваемых данных между клиентами и MQTT-брокером в Mosquitto рекомендуется использовать шифрование данных. Без использования шифрования данные передаются в открытом виде. Это делает их уязвимыми для перехвата и несанкционированного доступа.

Для шифрования данных Mosquitto использует протокол TLS/SSL (Transport Layer Security/Secure Sockets Layer). При установлении безопасного соединения клиент и сервер обмениваются сертификатами и ключами. При этом сервер предоставляет свой сертификат, чтобы клиент мог убедиться в его подлинности.

Создание конфигурационного файла OpenSSL

Соответственно, сначала необходимо на сервере сгенерировать сертификат и приватный ключ Центра сертификации (CA, Certificate Authority), которые будут использоваться в инфраструктуре с использованием TLS/SSL. Чтобы упростить работу с ключами, создайте конфигурационный файл для OpenSSL, который будет определять параметры создания сертификатов и ключей:

$ sudo nano /etc/mosquitto/certs/openssl.cnf

Содержимое файла должно выглядеть примерно следующим образом:

[req]
default_bits = 2048
prompt = no
default_md = sha256
distinguished_name = dn

[dn]
C = RU
ST = Moscow Region
L = Moscow
O = Your Organization
OU = Your Unit
CN = X.X.X.X

[v3_ca]
subjectAltName = @alt_names

[alt_names]
IP.1 = X.X.X.X

В данном случае

  • [req] − раздел, содержащий основные параметры запроса, в том числе:
    • default_bits = 2048 − размер ключа;
    • prompt = no − параметр, отключающий интерактивный ввод данных;
    • default_md = sha256 − алгоритм хеширования;
    • distinguished_name = dn − ссылка на секцию [dn];
  • [dn] − раздел, содержащий информацию о сертификате;
    • C = RU − код страны в формате ISO 3166-1;
    • ST = Moscow Region − регион, то есть, область, край или штат;
    • L = Moscow − город или населённый пункт;
    • O = Your Organization − название организации;
    • OU = Your Unit − подразделение организации;
    • CN = X.X.X.X − основное имя, обычно, имя домена или IP-адрес сервера, для которого создаётся сертификат (в данном случае замените X.X.X.X на IP-адрес вашего брокера Mosquitto);
  • [v3_ca] − раздел, содержащий настройки расширенных полей сертификата;
    • subjectAltName = @alt_names − параметр означает, что поле Subject Alternative Name (SAN) будет заполнено значениями из секции [alt_names];
  • [alt_names] − альтернативные имена или IP-адрес сервера;
    • IP.1 = X.X.X.X − параметр, указывающий на то, что сертификат может использоваться для конкретного IP.

Сохраните изменения в файле, после чего закройте его.

Создание корневого сертификата (CA)

Для дальнейшей работы перейдите в каталог, в котором будут создаваться ключи и сертификаты:

$ cd /etc/mosquitto/certs/

После чего сгенерируйте закрытый ключ, который будет использоваться для выпуска TLS-сертификатов:

$ sudo openssl genpkey -algorithm RSA -out ca.key

Затем создайте самоподписанный сертификат CA. Его можно будет использовать для подписи сертификатов серверов и клиентов:

$ sudo openssl req -new -x509 -days 365 -key ca.key -out ca.crt -config openssl.cnf

Создание сертификата сервера

Далее сгенерируйте закрытый ключ для TLS-шифрования сервера Mosquitto:

$ sudo openssl genpkey -algorithm RSA -out server.key

Создайте запрос на сертификат (CSR), который можно подписать у CA для получения действующего SSL-сертификата:

$ sudo openssl req -new -key server.key -out server.csr -config openssl.cnf

И, наконец, подпишите запрос на сертификат server.csr с использованием собственного центра сертификации:

$ sudo openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -extfile openssl.cnf -extensions v3_ca

Чтобы у Mosquitto был доступ к созданным файлам, измените владельца и группу директории /etc/mosquitto/certs/ и её содержимого на пользователя и группу mosquitto:

$ sudo chown mosquitto:mosquitto -R /etc/mosquitto/certs/

Изменение конфигурации Mosquitto

Теперь необходимо внести изменения в конфигурацию Mosquitto. Для чего откройте файл /etc/mosquitto/mosquitto.conf при помощи текстового редактора nano:

$ sudo nano /etc/mosquitto/mosquitto.conf

И добавьте в него следующие строки:

listener 8883
cafile /etc/mosquitto/certs/ca.crt
certfile /etc/mosquitto/certs/server.crt
keyfile /etc/mosquitto/certs/server.key

При этом, если вы хотите, чтобы в Mosquitto перестал использоваться порт 1883, удалите или закомментируйте строку listener 1883.

Закройте файл с сохранением изменений и перезапустите сервис mosquitto:

$ sudo systemctl restart mosquitto

Проверка подключения с использованием MQTTX

Теперь для запуска подписки на тестовый MQTT-топик test будет выглядеть следующим образом:

$ mosquitto_sub -h X.X.X.X -p 8883 -t test -u "mosquitto-user" -P "Password" --cafile /etc/mosquitto/certs/ca.crt

Здесь:

  • X.X.X.X − IP-адрес сервера Mosquitto;
  • 8883 − порт, используемый для подключения;
  • mosquitto-user − имя пользователя для подключения к Mosquitto;
  • Password − пароль учётной записи mosquitto-user;
  • /etc/mosquitto/certs/ca.crt − путь к файлу сертификата центра сертификации.

Чтобы воспользоваться защищённым соединением, например, из такого MQTT-клиента, как MQTTX, необходимо сделать так, чтобы MQTT-клиент доверял серверному сертификату при установке зашифрованного соединения. Для этого необходимо скопировать файл сертификата центра сертификации ca.crt на компьютер, с которого будет осуществляться подключение к брокеру. Сделать это можно, например, с использованием приложения WinSCP.

Копирование файла при помощи WinSCP

В интерфейсе MQTTX кликните значок создания нового подключения, где укажите:

  • название нового подключения в строке Name;
  • протокол mqtts:// и IP-адрес сервера в строке Host;
  • номер используемого порта, а именно, 8883, в строке Port.

Также в строках Username и Password укажите имя пользователя и пароля пользователя, используемые для подключения к брокеру. Переключатели SSL/TLS и SSL Secure оставьте во включённом состоянии. В разделе Certificate активируйте опцию CA or Self signed certificates, и наконец, в поле CA File выберите скопированный ранее файл сертификата центра сертификации. Для того, чтобы сохранить изменения и подключиться к брокеру, кликните Connect.

Создание нового защищённого подключения в MQTTX

После подключения к Mosquitto при помощи MQTTX вы можете отправить сообщение, которое будет получено брокером на вашем виртуальном сервере.

Передача сообщения в MQTTX - Настройка аутентификации и шифрования в Mosquitto

Статья полезна?

1 Да  Нет
Похожие статьи
  • Как установить Nextcloud на Ubuntu 24.04
  • Как установить Puma на Ubuntu 24.04
  • Дополнительные меры безопасности в Mosquitto
  • Как установить Mosquitto на Ubuntu 24.04
  • Как установить сертификат Let’s Encrypt на OpenLiteSpeed
  • Как установить сертификат Let’s Encrypt на Angie
Оставить комментарий Отменить ответ

Популярные статьи
  • Как подключиться по RDP из-под MacOS
  • Как установить PostgreSQL и pgAdmin4 в Ubuntu 20.04
  • Управление портами в Linux (Ubuntu/Debian/CentOS)
  • Настройка VPN с использованием WireGuard
  • Как извлекать и разархивировать файлы .tar.gz в Linux-системах
Разделы Справочника
  • Настройка VPS Сервера
  • Начало работы
  • Особенности виртуального сервера
  • Партнерам
  • Развертывание ПО на VPS сервере
  • Сетевые настройки сервера
GAME OVERNIGHT
CLOUDRUSSIA
STRATONET
SPACE DC
ARCTIC DC
VPS/VDS серверы:
Тестовый период
Дешевый VPS
VPS Старт
VPS Мощные
VPS Windows
VPS Быстрые NVMe
VPS с 1C
Форекс VPS
Игровые серверы
VPS для бизнеса
Пинг до дата-центров
Услуги:
Маркетплейс
Панель ispmanager
Антивирусная защита
Аренда лицензий
Облачное хранилище
VPS серверы с Plesk Obsidian
Колокация
Looking Glass
DNS
Клиентам:
О компании
Дата-Центры
Новости
Аттестация по ФСТЭК
Бонусная программа
Публичная Оферта
Соглашение об уровне услуг
Политика обработки персональных данных
Сувениры от RuVDS
Партнерам:
Для прессы
Партнерская программа
Отзывы
API
Помощь:
Справочник
FAQ
Созданных
серверов
231504
Huawey
Supermicro
Cisco
Intel
Microsoft
ISP
Kaspersky
RDCA Logo

«Креатив года» Премия ЦОДы.рф 2021, 2025

RDCA Logo

«Хостер года» Премия ЦОДы.рф 2023

RDCA Logo

«Человек года» Премия ЦОДы.рф 2024

RuVDS
support@RUVDS.com
8 (800) 775-97-42
+7 (495) 135-10-99
МЫ В СОЦИАЛЬНЫХ СЕТЯХ
Copyright © 2025 RuVDS. Все права защищены.
ООО "МТ ФИНАНС" | ОГРН 1157746680332
Оставить отзыв

Условия получения бонуса за оставленный отзыв:

  1. Напишите про нас на любом из специализированных сайтах для отзывов.
  2. Пришлите нам текст отзыва и ссылку на ваш отзыв.
  3. После проверки, мы опубликуем ваш отзыв у нас на сайте и также начислим бонус на ваш баланс.
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS
Оставить отзыв
Strong Testimonials form submission spinner.

Обязательное поле

Укажите электронную почту вашего аккаунта RUVDS
Укажите ссылку на ваш отзыв
rating fields
Поставьте оценку серверам RUVDS