Broker MQTT accessibile dall'esterno senza aprire la porta nel firewall?


9

Vorrei che il mio broker MQTT fosse accessibile dall'esterno della mia rete domestica, ma sono un po 'riluttante ad aprire una porta nel firewall. E vorrei evitare di usare il mio IP di casa.

È abbastanza conveniente avere un broker aperto non crittografato a casa, ma ciò non funziona se ho intenzione di esporlo. Quali altre opzioni ho?


@Bence Kaulics qualche suggerimento su cosa manca nella mia risposta?
hardillb

1
@hardillb La tua risposta è un buon riassunto, ma penso che potrebbe essere utile avere qualche dettaglio in più su ogni punto. Ad esempio, come impostare tale ponte tra due broker. Inoltre vorrei semplicemente venire altre idee se ce ne fossero, questa descrizione di taglie è la migliore che potessi trovare, anche la tua risposta è autonoma. Forse avrei dovuto scegliere il motivo "Non ho ricevuto abbastanza attenzione".
Bence Kaulics,

In quanto non esperto, concordo sul fatto che il punto 2 (che sembra la parte più preziosa della risposta) possa essere elaborato un po 'di più. Forse con un link a un how-to, ora sicuro.
Sean Houlihane,

sfortunatamente ogni diverso tipo di broker ha un modo diverso di configurare un bridge, quindi è impossibile dare una risposta generica (allo stesso modo con autenticazione / configurazione TLS)
hardillb

Risposte:


10

Fondamentalmente hai 3 opzioni se non vuoi inoltrare una porta.

  1. Utilizzare un broker nel cloud in modo che il client da casa si connetta sempre ad esso. Usa TLS e l'autenticazione in modo che altri non possano intercettare o iniettare messaggi indesiderati
  2. Utilizzare un broker cloud e impostare un ponte tra il broker interno e il broker cloud (si desidera comunque crittografare e impostare nome utente / password sul broker cloud). Ciò ha il vantaggio che le cose interne continuano a funzionare se la connessione a Internet si interrompe.
  3. Una VPN su tutti i dispositivi esterni per consentire l'accesso alla tua rete domestica (ma, a dire il vero, probabilmente dovrai aprire una porta per la VPN o disporre di un router che supporti l'essere un server VPN)

Ma inoltrare una porta a una configurazione corretta (più o meno la stessa del broker cloud) non è davvero un rischio.


1
Mi piace l'idea del cloud home bridge, che ha l'ulteriore vantaggio che tutti i servizi di reporting al di fuori della mia rete domestica funzioneranno normalmente se il mio broker locale si interrompe. E il broker locale riceverà i dati "persi" quando tornerà online. Grande! :)
Thomas Jensen il

3

Poiché il broker è un server, DEVE aprire almeno una porta per consentire ai client di connettersi.

Quindi, il tuo problema diventa un caso speciale di esporre un servizio su Internet.

Ciò è stato fatto tramite DMZ, tramite proxy o in altro modo per imporre un'autenticazione più rigorosa rispetto al servizio predefinito. Se il tuo proxy risiede sul cloud, questo estende la tua DMZ al cloud.

Il tuo approccio più semplice è probabilmente quello di rafforzare il tuo broker (disabilitare i client anonimi) e limitare chi può connettersi ad esso attraverso il firewall (consenti solo determinati indirizzi IP client, se li conosci in anticipo).


3
Non è corretto, ho creato un ponte tra il mio broker locale e uno cloud. E poiché la connessione bridge viene avviata dall'interno della mia rete domestica, non è richiesta l'apertura della porta.
Thomas Jensen,

3

@hardillb ha dato una buona risposta, ma lasciami provare ad aggiungere alcuni dettagli aggiungendo un tocco di "vita reale":

  1. Scegli alcuni broker MQTT disponibili al pubblico. HiveMQ può essere un buon esempio e puoi iniziare con la pagina di prova che descrive come connettersi al broker:

Collegati al broker pubblico

Host: broker.hivemq.com

Porto: 1883

Porta presa web: 8000

  1. Scegli quale client si adatta meglio a te e utilizzalo per l'interconnessione del broker interno con il broker MQTT pubblico. Ad esempio, il tuo client C potrebbe essere Paho MQTT . Il client ha il supporto per SSL / TLS, quindi la tua sicurezza rimane ad alto livello.

  2. Paho MQTT integrato può essere la tua scelta per dispositivi esterni.

  3. HiveMQ ha una politica di licenza pay-as-you-go in modo da poterla considerare con cura. Puoi comunque consultare questa pagina per un elenco di cloud disponibili e testare i broker MQTT disponibili.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.