Como evito o encaminhamento de porta ao expor dispositivos IoT à Internet externa?

15

Recebi boas respostas na pergunta O que preciso para criar minha própria nuvem pessoal para dispositivos de IoT? e uma das coisas que entendi a partir daí é que preciso "expor" meu HUB ou GATEWAY à Internet externa. A solução proposta para isso é o encaminhamento de porta .

Eu criei isso como uma pergunta separada, porque seria difícil acompanhar adequadamente apenas com comentários sobre todas as respostas, alguém poderia se perder. Além disso, essas informações podem ser úteis para alguém com uma pergunta semelhante.

Não gosto da ideia de ter que ir para a configuração do meu roteador e configurar o encaminhamento de porta, porque isso significa que tenho que configurar um dispositivo que, apesar de fazer parte da infraestrutura da IoT, não é um dos "meus" dispositivos. Ele deve ser o menos perturbador possível da rede doméstica já existente. Além disso, tive casos em que não sei a senha de administrador de um roteador específico e tem sido muito difícil obtê-la.

Tenho certeza de que existe uma maneira de contornar isso, mesmo que isso signifique ter um IoT HUB mais poderoso, talvez executando o Linux, simplesmente não sei o que poderia ser. Não há problema em ter um HUB um pouco mais complexo se essa maneira "alternativa" permitir evitar essa configuração de encaminhamento de porta.

Digo que tenho certeza de que há uma maneira de pensar em como aplicativos como o visualizador de equipe não precisam configurar o encaminhamento de porta.

Portanto, a pergunta é: alguém conhece uma maneira de "expor" um dispositivo incorporado da Internet das coisas à Internet externa para acessá-lo de qualquer lugar do mundo que não envolva encaminhamento de porta?

m4l490n
fonte

Respostas:

10

Se você não conseguir encaminhar o roteador para a porta, pode ser necessário recorrer à perfuração :

A perfuração é uma técnica nas redes de computadores para estabelecer uma conexão direta entre duas partes nas quais uma ou ambas estão protegidas por firewalls ou por roteadores que usam a tradução de endereços de rede (NAT). Para fazer um furo, cada cliente se conecta a um servidor de terceiros irrestrito que armazena temporariamente informações de endereço e porta externas e internas para cada cliente. O servidor então retransmite as informações de cada cliente para o outro e, usando essas informações, cada cliente tenta estabelecer conexão direta; como resultado das conexões usando números de porta válidos, firewalls ou roteadores restritivos aceitam e encaminham os pacotes recebidos de cada lado.

O NAT no seu roteador significa que os clientes fora da sua rede não podem se conectar a portas abertas de dispositivos dentro da sua rede, mas isso não impede que os dispositivos na sua rede se conectem a um 'broker'. Usando um pouco de indireção , você pode estabelecer uma conexão direta entre dois dispositivos sem abrir portas - isso é essencialmente o que serviços como Skype e Hamachi fazem.

Obviamente, isso requer um servidor externo para coordenar a conexão, e você provavelmente desejaria confiar no servidor que estava realizando a perfuração.

Comunicação ponto a ponto entre tradutores de endereços de rede de Bryan Ford, Pyda Srisuresh e Dan Kegel é uma leitura interessante para obter mais informações sobre os mecanismos de perfuração e quão confiável é.

Aurora0001
fonte
Maravilhoso! Uma pergunta, no entanto, esse servidor de terceiros ou "corretor" também pode estar dentro de minha casa? E ser, por exemplo, uma placa Linux incorporada? Porque, caso contrário, essa abordagem apresentaria um problema ainda maior ao falar sobre ter elementos externos de terceiros na implantação da IoT. Se uma placa Linux embutida não puder ser isso, então o que seria?
M4l490n
3
@ m4l490n: Teria que estar fora da sua rede de alguma forma. Eu imagino que poderia ser um servidor de nuvem em algum lugar, ou você poderia usar a placa Linux se essa porta fosse encaminhada. A perfuração UDP só funciona quando você tem um servidor / dispositivo acessível publicamente na Internet em algum lugar. Não é o ideal, mas você não pode contornar o fato de que algo deve estar disponível publicamente na Internet para se conectar. Suspeito que uma placa Linux incorporada na sua rede doméstica não traga vantagens; você só tem que porta para a frente que , em vez de seu dispositivo Internet das coisas.
Aurora0001
1
Excelente! Embora não fosse a intenção direta da sua resposta e não a intenção original da minha pergunta, finalmente entendi o papel de um servidor em nuvem em uma infraestrutura de IoT !.
M4l490n
Pelo que entendi, o buraco é meio virtual, ao contrário do encaminhamento de porta em que o estado do roteador é modificado. Cada extremidade do link está se comunicando apenas com o servidor? Portanto, esse seria o modelo típico da IoT, acredito, já que a rede geral é de muitos para muitos?
Sean Houlihane 24/02
7

No mundo da IoT, onde os dispositivos têm poucos recursos para lidar com tráfego indesejado de conexões externas e, é claro, a necessidade de lidar com qualquer encaminhamento de porta e problemas de firewall com roteadores levou à seguinte abordagem que você pode ver em muitas soluções de back-end da IoT:

Os dispositivos não aceitarão nenhuma informação de rede não solicitada. Todas as conexões e rotas serão estabelecidas pelo dispositivo apenas de saída. Portanto, o dispositivo abrirá as conexões de saída, de modo que não serão necessários ajustes no firewall / roteador e manterá o canal aberto pelo tempo necessário.

Um bom artigo sobre os problemas e soluções de comunicação no mundo da IoT.

shachar
fonte
Para o MQTT, o dispositivo é um cliente (publicador ou assinante ou ambos) e inicia a conexão com o broker (servidor).
Gambit Support
"os dispositivos têm poucos recursos para lidar com tráfego indesejado de conexões de saída " ???? isso não faz nenhum sentido. As conexões de saída só podem ser iniciadas dentro da rede.
Chris Stratton
@ChrisStratton, as conexões de saída podem ser direcionadas diretamente aos dispositivos usando o encaminhamento de porta se o NAT estiver sendo usado. Eles também podem ter seu próprio IP e podem ser acessados ​​diretamente da Internet.
Shack #:
Você parece estar entendendo mal o significado da palavra "saída" e usando-a por engano, onde o que você realmente quer dizer é "entrada". E a conexão de saída é um dispositivo de IoT que alcança um servidor em nuvem. Uma conexão de entrada é algo fora da sua rede doméstica (por exemplo, seu telefone enquanto você está andando na rua) tentando acessar um dispositivo dentro da sua rede.
Chris Stratton
@ ChrisStratton, você está correto. Quando escrevi saída, eu quis dizer tráfego externo, que é basicamente a conexão "Entrada" do sensor. Eu editei minha resposta, Obrigado
shachar
3

Tente bater à porta . Você ainda precisa encaminhar a porta, mas a porta só está aberta após o envio de uma combinação secreta (você escolhe) de pings. Em seguida, você pode fechar a porta com outra combinação secreta de pings. Ele pode ser executado no Linux incorporado, como um roteador wifi com o OpenWrt.

GusGorman402
fonte
3

Embora eu não possa recomendar que você permita que qualquer dispositivo IoT possa ser acessado da Internet pública, você pode fazer isso de forma nativa usando o IPv6.

Se o seu ISP e a rede local estiverem configurados para IPv6 e os seus dispositivos IoT o suportarem, eles poderão obter automaticamente um endereço IPv6 que pode ser roteado de qualquer lugar da Internet (o IPv6 elimina a necessidade de encaminhamento de porta e NAT). Você só precisa garantir que todos os firewalls com estado (seu roteador) estejam configurados para permitir o tráfego para cada dispositivo. Alguns podem permitir isso (de maneira insegura) por padrão.

multithr3at3d
fonte
2

Configure um servidor VPN em casa e conecte-se a ele de qualquer lugar. Eu acho que isso seria muito mais seguro do que expor qualquer tipo de dispositivo IoT à Internet aberta.

Maurice
fonte
Isso não é apenas algum tipo de gateway?
Helmar
hm? uma VPN é uma conexão ponto a ponto (geralmente criptografada) entre um dispositivo e uma rede. faz com que o dispositivo de conexão aja como se fosse parte da rede. Eu acho que você poderia pensar nisso como um gateway ... mas é um serviço.
Maurice
Claro, mas esse serviço ainda precisa passar pelo roteador doméstico - geralmente por meio de encaminhamento de porta ou conexões de saída sem interrupção.
Helmar
Sim, você ainda precisará encaminhar a porta em que a VPN está sendo executada. mas é mais seguro do que expor dispositivos individuais (tho potencialmente menos conveniente, dependendo do que você está tentando alcançar)
Maurice