Защита соединений Mosquitto - MQTT

Я установил брокера на ПК с Windows, который публикует сообщения для raspberry pis (клиентов). На той же машине Windows я запускаю сервер node.js, который также является клиентом mosquitto, который может публиковать сообщения брокеру, работающему на той же машине Windows.

Я поискал (просто погуглил и прочитал официальную документацию), как я могу защитить moquittoconnections. Но я все же столкнулся с некоторыми проблемами:

  • Как я могу разрешить брокеру Mosquitto общаться только с клиентами, работающими на одной машине? (например, для простой публикации значений датчиков в локальном интерфейсе через веб-сокеты - что я уже делаю)
  • Требуют ли локальные (на той же машине) клиенты имя пользователя и пароль, если они указаны?
  • Почему эта конфигурация не требует имени пользователя и пароля, когда клиент подключается к брокеру?

My mosquitto.conf:

allow_anonymous false
password_file C:\Program Files (x86)\mosquitto

Файл паролей находится в указанном месте и действителен.

mosquitto -c mosquitto.conf не выдает ошибок.

  • Могу ли я по-прежнему использовать имя пользователя и пароль при включении шифрования mosquitto-tls?

person Matthias Herrmann    schedule 10.04.2017    source источник


Ответы (1)


Слушатели могут быть привязаны к определенному интерфейсу, например. 127.0.0.1, который будет разрешать соединения только с локального хоста.

listener 1885 127.0.0.1

Если вы хотите ограничить весь брокер прослушиванием только локальных подключений, используйте параметр конфигурации bind_adddress, чтобы изменить прослушиватель по умолчанию, чтобы он прослушивал только 127.0.0.1, а не 0.0.0.0 (этот адрес представляет ВСЕ сетевые интерфейсы на машине)

Если настроена аутентификация на основе пароля, она применяется ко ВСЕМ слушателям, поэтому, если вы настроили прослушиватель только для локального хоста, вам все равно нужно будет указать имя пользователя и пароль.

Вы можете использовать TLS и аутентификацию на основе имени пользователя и пароля, если вы не используете сертификаты на стороне клиента и не включаете use_identity_as_username и require_certificate

person hardillb    schedule 10.04.2017
comment
Для завершения: mosquitto брокер читает mosquitto.conf в Windows, только если вы запускаете его как службу. - person Matthias Herrmann; 21.04.2017
comment
Неправильно, он всегда будет читать его, если передан в командной строке с параметром -c - person hardillb; 21.04.2017
comment
из readme-windows.txt При работе в качестве службы используется конфигурация в mosquitto.conf в каталоге установки, поэтому измените ее по своему усмотрению. - person Matthias Herrmann; 21.04.2017