Corretor MQTT acessível de fora sem abrir a porta no firewall?


9

Gostaria que meu broker MQTT estivesse acessível fora da minha rede doméstica, mas estou um pouco relutante em abrir uma porta no firewall. E eu gostaria de evitar o uso do meu IP residencial.

É bastante conveniente ter um corretor aberto não criptografado em casa, mas isso não funciona se eu for exposto. Que outras opções eu tenho?


@Bence Kaulics alguma sugestão sobre o que está faltando na minha resposta?
hardillb

11
@hardillb Sua resposta é um bom resumo, mas acho que pode ser útil ter mais alguns detalhes sobre cada ponto. Por exemplo, como configurar essa ponte entre dois corretores. Além disso, eu simplesmente viria com outras idéias, se houver alguma, essa descrição de recompensa é a melhor que pude encontrar, sua resposta também é por si mesma. Talvez eu devesse ter escolhido o motivo "Não recebi atenção suficiente".
Bence Kaulics

Como não especialista, eu concordaria que o ponto 2 (que parece a parte mais valiosa da resposta) poderia ser elaborado um pouco mais. Talvez com um link para um tutorial, agora com certeza.
Sean Houlihane

infelizmente cada tipo diferente de corretor tem uma maneira diferente de configurar uma ponte por isso é impossível dar uma resposta genérica (Da mesma forma com autenticação setup / TLS)
hardillb

Respostas:


10

Você basicamente tem 3 opções se não quiser encaminhar uma porta.

  1. Use um broker na nuvem para que o cliente em casa sempre se conecte a ele. Use TLS e autenticação para que outras pessoas não possam escutar ou injetar mensagens indesejadas
  2. Use um intermediário de nuvem e configure uma ponte entre o intermediário interno e o intermediário de nuvem (você ainda deseja criptografar e configurar nome de usuário / senha no intermediário de nuvem). Isso tem a vantagem de que coisas internas continuam funcionando se a conexão à Internet cair.
  3. Uma VPN em todos os dispositivos externos para permitir o acesso à sua rede doméstica (mas, para ser sincero, você provavelmente precisará abrir uma porta para a VPN ou um roteador compatível com um servidor VPN)

Mas encaminhar uma porta para um configurado corretamente (aproximadamente o mesmo que o broker da nuvem) não é realmente um risco.


11
Gosto da idéia da ponte doméstica na nuvem, que tem o bônus adicional de que todos os serviços de relatório fora da minha rede doméstica ainda funcionem normalmente se meu corretor local desistir. E o corretor local receberá os dados "perdidos" quando voltar a ficar on-line. Ótimo! :)
Thomas Jensen

3

Como o broker é um servidor, você DEVE abrir pelo menos uma porta para os clientes se conectarem.

Portanto, seu problema se torna um caso especial de exposição de um serviço na Internet.

Isso foi feito via DMZ, por meio de proxy ou outra maneira de impor uma autenticação mais rigorosa que o serviço padrão. Se o seu proxy vive na nuvem, isso apenas estende sua DMZ para a nuvem.

Sua abordagem mais simples é provavelmente proteger seu broker (desabilitar clientes anônimos) e restringir quem pode se conectar a ele através do firewall (permita apenas determinados endereços IP de clientes, se você os conhecer com antecedência).


3
Isso não está correto, eu coloquei uma ponte sobre o meu corretor local com um na nuvem. E como a conexão da ponte é iniciada de dentro da minha rede doméstica, nenhuma abertura de porta é necessária.
Thomas Jensen

3

@hardillb deu uma boa resposta, mas deixe-me tentar adicionar alguns detalhes, adicionando um toque "real":

  1. Escolha algum intermediário MQTT disponível ao público. HiveMQ pode ser um exemplo bom e você pode começar com o try-out página que descreve como ligar para o corretor:

Conecte-se ao Public Broker

Anfitrião: broker.hivemq.com

Porto: 1883

Porta Websocket: 8000

  1. Escolha qual cliente melhor se adapta a você e use-o para interconexão do intermediário interno com o intermediário público do MQTT. Por exemplo, seu cliente C pode ser Paho MQTT . O cliente tem suporte para SSL / TLS para que sua segurança permaneça em um nível alto.

  2. O Paho MQTT incorporado pode ser a sua escolha para dispositivos externos.

  3. O HiveMQ possui uma política de licenciamento de pagamento conforme o uso, para que você possa considerá-la com cuidado. De qualquer forma, você pode verificar esta página para obter uma lista de nuvens disponíveis e testar os corretores MQTT disponíveis.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.