MQTT брокер, доступний ззовні без відкриття порту в брандмауері?


9

Я хотів би, щоб мій брокер MQTT був доступний за межами домашньої мережі, але я трохи не бажаю відкривати порт у брандмауері. І я хотів би уникати використання домашнього IP.

Досить зручно мати незашифрованого відкритого брокера вдома, але це не спрацює, якщо я збираюся його викрити. Які ще є варіанти?


@Bence Kaulics будь-які пропозиції щодо того, чого не вистачає в моїй відповіді?
hardillb

1
@hardillb Ваша відповідь - це хороший підсумок, але я думаю, що може бути корисним детальніше про кожен пункт. Наприклад, як встановити такий міст між двома брокерами. Крім того, я б просто прийшов до інших ідей, якщо такі є, цей опис щедрості є найкращим, що я міг знайти, і ваша відповідь стоїть самостійно. Можливо, я мав обрати причину "Не приділяв достатньої уваги".
Бенс Каулікс

Як неексперт я погоджуюся, що пункт 2 (який видається найбільш цінною частиною відповіді) міг би бути розроблений ще трохи. Можливо, із посиланням на практику, зараз впевнений.
Шон Хуліхане

на жаль, у кожного брокера різних типів є різний спосіб налаштування мосту, тому неможливо дати загальну відповідь (Так само і з налаштуванням автентифікації / TLS)
hardillb

Відповіді:


10

У вас є 3 варіанти, якщо ви не хочете пересилати порт.

  1. Використовуйте брокера в хмарі, щоб клієнт з дому завжди підключався до нього. Використовуйте TLS та автентифікацію, щоб інші не могли підслуховувати чи вводити небажані повідомлення
  2. Використовуйте хмарний брокер і встановіть міст між внутрішнім брокером та хмарним брокером (ви все ще хочете зашифрувати та встановити ім'я користувача / пароль на хмарний брокер). Це має перевагу в тому, що внутрішні речі продовжують працювати, якщо підключення до Інтернету припиняється.
  3. VPN на всіх зовнішніх пристроях, щоб дозволити доступ до вашої домашньої мережі (але, чесно кажучи, вам, мабуть, доведеться відкрити порт для VPN або мати маршрутизатор, який підтримує VPN-сервер)

Але переадресація порту в правильно налаштований (приблизно такий же, як хмарний брокер) насправді не є ризиком.


1
Мені подобається ідея хмарного мостового дому, яка має додатковий бонус, що всі служби звітності поза моєю домашньою мережею все одно працюватимуть нормально, якщо мій локальний брокер відмовиться. А місцевий брокер отримає "пропущені" дані при поверненні в Інтернет. Чудово! :)
Томас Дженсен

3

Оскільки брокер є сервером, ви ОБОВ'ЯЗКОВО відкрити принаймні один порт для підключення клієнтів.

Отже, ваша проблема стає особливим випадком викриття послуги в Інтернеті.

Це було зроблено через DMZ, або через проксі-сервер, або іншим способом застосування більш жорсткої автентифікації, ніж служба за замовчуванням. Якщо ваш проксі-сервер живе на хмарі, це просто поширює ваш DMZ на хмару.

Ваш найпростіший підхід - це, мабуть, загартовування вашого брокера (відключення анонімних клієнтів) та обмеження того, хто може підключитися до нього через брандмауер (дозвольте лише певні IP-адреси клієнта, якщо ви їх заздалегідь знаєте).


3
Це невірно, я з'єднав свого місцевого брокера з хмарним. А оскільки мостове з'єднання ініціюється всередині моєї домашньої мережі, відкриття порту не потрібно.
Томас Дженсен

3

@hardillb дав хорошу відповідь, але дозвольте мені спробувати додати кілька деталей, додавши дотику "реального життя":

  1. Виберіть деякого брокера MQTT, доступного для населення. HiveMQ може бути хорошим прикладом, і ви можете почати зі сторінки випробувань, що описують, як підключитися до брокера:

Підключіться до Public Broker

Ведучий: broker.hivemq.com

Порт: 1883 рік

Порт Websocket: 8000

  1. Виберіть, який клієнт найбільше підходить вам, і використовуйте його для внутрішнього взаємозв'язку брокера з загальнодоступним брокером MQTT. Наприклад, вашим клієнтом C може бути Paho MQTT . Клієнт має підтримку SSL / TLS, тому ваша безпека залишається на високому рівні.

  2. Вбудований Paho MQTT може стати вибором для зовнішніх пристроїв.

  3. HiveMQ має політику ліцензування оплати, так що ви можете уважно ставитися до цього. У будь-якому випадку ви можете ознайомитись із цією сторінкою, щоб ознайомитись із списком доступних хмари та тестувати доступних MQTT брокерів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.