Gerenciando vários dispositivos por trás do firewall remotamente

3

Estou procurando uma solução que me permita acessar remotamente vários dispositivos de um servidor central.

Os dispositivos são pré-instalados com software personalizado, mas suas condições de rede serão desconhecidas e, provavelmente, em ambientes WiFi restritos 3G ou NAT.

A primeira coisa que pensei foi usar conexões SSH reversas (com ssh -R através de um serviço systemd ou autoSSH), embora isso implique ter uma porta redirecionada para cada dispositivo. Isso não é realmente um problema e duvido que eu tenha mais de ~ 50 mil dispositivos rodando ao mesmo tempo.

No entanto, estou procurando uma infraestrutura mais fácil de gerenciar e mais escalável, apenas por precaução. Eu tentei investigar outras questões e não consigo encontrar uma resposta sobre esse problema. Vejo que algumas pessoas recomendam o uso de túneis VPN, conectando cada dispositivo ao central. Se alguém pudesse explicar como funciona, seria ótimo, eu realmente não entendo como isso funcionaria, onde eu configuro cada ID / nome de dispositivo e como faço para iniciar uma conexão remota quando tudo estiver em execução.

Qualquer outra abordagem ou solução também é bem-vinda.

Nota 1: Um por um acesso remoto é suficiente, penso eu, mas se todo o disponível (para enviar comandos ao grupo de dispositivos) também será útil (mas não pare de responder se uma solução de cada vez for em sua mente).

Nota 2: Os sistemas são baseados no Debian. (Raspbian. Também poderia ser o Ubuntu, se necessário)

    
por jaimehrubiks 22.09.2016 / 11:18

1 resposta

3

Com o termo da moda, a "Internet das Coisas", recebemos regularmente esse tipo de pergunta. Vou adicionar uma resposta longa com algumas considerações e convidar outras pessoas para editar e melhorar.

  • Abandone a ideia de acesso interativo a qualquer dispositivo específico. Você vai querer um agente no dispositivo que pegue as instruções / comandos do servidor de gerenciamento e que ele retorne a sua integridade e quaisquer resultados / dados coletados. Seria útil para um operador no local ter confirmação de que o dispositivo está de fato se comunicando com seu servidor de gerenciamento ou com erro.

  • Seus dispositivos precisam ligar para casa .
    Você desejará que seus dispositivos se conectem ao (s) seu (s) servidor (es) de gerenciamento e não o contrário. Com o IPv4 ainda em uso por muitos consumidores e empresas, ainda há bastante NAT, onde estabelecer uma conexão do dispositivo com o servidor funcionará muito mais suavemente do que o inverso (isso exigiria a configuração do encaminhamento de porta, etc.).

    O comportamento padrão da maioria dos firewalls para pequenas empresas / consumidores é permitir todo o tráfego de saída e, como muitas vezes não são realmente gerenciados, isso significa que a telefonar para a casa geralmente funcionará sem configuração adicional. Até mesmo muitas redes gerenciadas preferem permitir conexões de saída sobre a abertura de conexões de entrada.

  • O protocolo precisa ser HTTP ou melhor HTTPS . Isso é executado sobre TCP / IP normal e, mesmo quando nenhum acesso direto à Internet é permitido, seus dispositivos ainda podem ser facilmente configurados para usar um proxy da web.

  • Seu servidor de gerenciamento precisa ouvir nas portas padrão , ou seja, 80 (HTTP) e / ou 443 (HTTPS). Há muito a ser dito para seguir a horda ...

  • Seus dispositivos precisam ser capazes de se configurar com DHCP , mas você também precisará oferecer a um operador local um método para configurar uma configuração IP estática e / ou um proxy servidor.

  • Seus dispositivos precisarão oferecer suporte a IPv6 e IPv4 .

  • Inscrição automática - com um número maior de dispositivos, você provavelmente não deseja registrar (manualmente) cada dispositivo no servidor de gerenciamento antes de implantá-lo, em vez disso, um dispositivo provavelmente deve se registrar quando ligado e conectado.

  • O agente não deve ser executado em uma programação fixa, você não quer que milhares de agentes liguem para casa exatamente no mesmo momento.

Você pode querer dar uma olhada nas ferramentas de gerenciamento de configuração que já oferecem muitas dessas funcionalidades.

Se você decidir criar o seu próprio, considere o uso de estruturas como o SDK do gateway do IoT do Azure , Google Compute IoT ou AWS IoT

    
por 22.09.2016 / 13:30