Atingindo um dispositivo na minha LAN a partir da Internet

18

Eu tenho um dispositivo incorporado que posso programar via Ethernet IP quando está conectado no mesmo roteador com o PC da seguinte maneira:

insira a descrição da imagem aqui

É possível enviar todo o tráfego pela Internet e ainda poder programá-lo? Para deixar um pouco mais claro, algo como:

insira a descrição da imagem aqui

Motor
fonte
6
"Ethernet IP"? Isso não é apenas ... uma rede comum como a LAN?
grawity
"Programação via Ethernet IP" - o que exatamente isso significa? Seria útil se você pudesse especificar qual dispositivo e IDE você está falando. Presumo que o IDE se conecte ao dispositivo em um determinado endereço IP e porta TCP para receber comandos?
slhck 13/11/19
@grawity sim, é uma rede LAN normal. Como na rede e no slhck, estou usando o codesys IDE e um dispositivo com o codesys Runtime nele!
Motor
3
A resposta óbvia é o IPv6, é claro.
Michael Hampton
11
@grawity Ethernet / IP é um protocolo de automação industrial, que não deve ser confundido com IP sobre Ethernet :(
richardb

Respostas:

50

O método simples (e não seguro)

O que você está procurando é chamado encaminhamento de porta [ 1 ] [ 2 ] .

Por exemplo, vamos assumir o seguinte:

  • Seu dispositivo programável funciona na porta 22e possui o IP192.168.1.5

  • Seu IP público é 122.176.11.55

Depois, você pode acessar as configurações do roteador e encaminhar uma porta WAN (por exemplo, 8022) para 192.168.1.5:22.

Agora, você pode acessar remotamente o dispositivo de qualquer lugar através da Internet acessando em 122.176.11.55:8022vez de 192.168.1.5:22no seu IDE.

Lembre-se de que, a menos que você tenha um IP estático, seu IP público pode mudar a qualquer momento. Nesse caso, você deve verificar os serviços DNS dinâmicos .

NOTA : a menos que seu dispositivo possua algum método de autenticação, alguém com intenção maliciosa certamente encontrará acesso a ele na Web aberta. Veja abaixo a alternativa segura.

O método seguro (e honestamente não muito mais complicado)

Deixe um PC (ou raspberry pi ou similar) conectado à sua rede e acesse- o remotamente através de algo seguro como SSH e programe seu dispositivo através dele através da LAN.
Isso também tem a vantagem de funcionar, mesmo que seu dispositivo não use TCP ou UDP :)

Um pouco entediante, sim. Mas seguro.

rahuldottech suporta Monica
fonte
10
Também ajudaria a anotar que, se o OP definir um encaminhamento de porta aberto para fazer isso, todos os demais no mundo inteiro poderão alterar o código. A menos que exista alguma forma de autenticação, mais cedo ou mais tarde, os portistas encontrarão a porta e um hacker tentará invadir, isso é uma garantia.
LPChip
@LPChip Indeed! Eu deveria ter mencionado isso, meu mal.
Rahuldottech suporta Monica 13/11
Adição agradável. :) Gostaria de lhe dar um +1 por isso, mas já dei a earler, porque mesmo sem o aviso, já era uma boa resposta. :)
LPChip
2
O @FreeMan mais tarde, pode levar dias até que um rastreador de bots apareça, dependendo da porta usada, mas mais cedo no sentido de que, se você tiver azar, isso pode acontecer em questão de minutos.
LPChip
11
@IsmaelMiguel Obviamente, você deve fazer todas as coisas óbvias de segurança básica. Eu simplesmente não tenho como saber o que eles são neste caso específico.
Rahuldottech suporta Monica
11

A única e correta resposta pode ser "VPN".

O simples uso do IPv6 "funcionaria" (supondo que o roteador não esteja configurado para firewall do dispositivo, e todo o ISP, dispositivo e laptop suporta IPv6), mas é uma péssima idéia pelo mesmo motivo que o encaminhamento de porta é.

Além de promovido pela conhecida propaganda IPv6, você realmente nunca deseja que nenhum dos dispositivos na sua LAN seja identificável de forma única ou acessível pela Internet. Não, isso não é uma coisa boa.

O encaminhamento de porta "funcionaria" com o bom e antigo IPv4, mas torna o dispositivo acessível não apenas a você, mas a todos. Ninguém sabe, então isso não é problema, certo?
Bem, há um exército de scanners de portas automatizados executando 24 horas por dia, sete dias por semana e varredura de endereços / portas aleatórios, na esperança de que qualquer coisa, em qualquer lugar, possa responder, portanto, geralmente, ter qualquer dispositivo que responda a uma solicitação externa on-line não é o ideal. Se um dispositivo felizmente se programou de acordo com o que entra pela rede, essa é uma receita para desastres.
O exposto acima também é, em princípio, válido para a VPN, mas é tão bom quanto você pode obter, se quiser acessar. A única coisa verdadeiramente segura é a falta de conexão à Internet, o que não é uma opção prática por razões óbvias. A próxima coisa mais segura a "sem internet" é a VPN. Exatamente uma porta em exatamente um dispositivo (bem, depende, até três portas), expondo a VPN e nada mais , encaminhadas para a Internet.

A VPN permite que você - mas mais ninguém - acesse um dispositivo na sua LAN via Internet como se estivesse na mesma LAN (embora um pouco mais lenta). Impede o acesso não autorizado, fornece confidencialidade e integridade dos dados.

Virtualmente, todo roteador sem importância suporta pelo menos um sabor de VPN pronto para uso. Infelizmente, dependendo do modelo de roteador que você possui, pode ser um pouco ruim de VPN ou pode ser pouco documentado como configurar o computador remoto. Ainda assim, apesar do possível aborrecimento de descobrir como configurá-lo - se você não tem nada melhor, essa é de longe a melhor opção!
As caixas NAS mais comuns suportam dois ou três métodos sem VPN de sucção, e todo computador de 3 Watt com tamanho de cartão de crédito de US $ 20 pode executar um servidor VPN, sem problemas. Mesmo muitos telefones celulares modernos suportam VPN sem a necessidade de instalar software extra, para que você possa acessar sua rede doméstica quando estiver usando a Internet móvel do telefone (via ponto de acesso privado, até).

Por exemplo, L2TP / IPSec pode não ser a melhor opção, mas é 99% boa e leva um minuto para configurar na minha Disk Station e no meu telefone Samsung. Outro minuto se meu laptop Windows também for usá-lo (independentemente do telefone). Não é necessário nenhum software extra.
O OpenVPN leva de 3 a 5 minutos para ser instalado, pois você precisará baixar e instalar o software cliente no laptop. Mas, em geral, uma configuração de 5 minutos conta como "zero", em comparação com ser completamente insegura.

Damon
fonte
5
A compra de serviços de terceiros não é a única resposta. Você pode obter o mesmo efeito com SSH ou RDP.
jpaugh
4
Os dois e só corretas respostas são VPN ou SSH túneis ... Alguns protocolos VPN não são muito bons tanto na prevenção MITM ...
trognanders
5
SSH é a maneira mais barata, mais conveniente e mais fácil de configurar e, provavelmente, a melhor opção neste cenário
rahuldottech suporta Monica
@jpaugh: a VPN não envolve serviços de terceiros. Embora eu concorde prontamente que o SSH pode funcionar, ele não chega nem perto da VPN quando se trata de facilidade de instalação, disponibilidade universal sem instalações extras, sem aros e, por último, mas não menos importante, usabilidade perfeita . Agora, sobre o RDP ... é claro que você está brincando, certo? Não é apenas a implementação primitiva o software provavelmente mais explorado do mundo (ou pelo menos no top 5), mas também o próprio protocolo é inerentemente inseguro, usando cifras quebradas (viáveis, não teóricas) e uma versão TLS que foi substituída há uma década.
Damon
4
-1 simplesmente para "um e apenas" no título, o SSH com encaminhamento de porta também é completamente válido e provavelmente mais seguro, pois você não precisa necessariamente fornecer acesso remoto a toda a rede, apenas uma porta de um dispositivo e, provavelmente, é fácil de configurar e você não depende da implementação aleatória de software de um roteador de um recurso raramente usado.
Bill K
2

Hospede uma VPN, em um dispositivo de roteador / gateway de segurança ou em outra caixa com encaminhamento de porta para essa caixa. Sempre que você quiser trabalhar remotamente, conecte-se à VPN e verá o dispositivo incorporado como se estivesse em uma rede local. Provavelmente, seria uma boa idéia colocar o dispositivo incorporado em uma sub-rede isolada, para ajudar a evitar ataques à sua rede principal se a VPN ou o dispositivo incorporado estiver comprometido.

Michael P
fonte
1

Transforme o PC com Windows sem IDE em um PC com Linux em uma configuração razoavelmente segura com o sshd em execução. Port forward do seu roteador para a porta SSH na máquina Linux. Use túneis SSH para conectar-se ao IP do dispositivo incorporado. Em seguida, ao programar em sua máquina remota com um IDE, você se conectará ao host local em vez do IP da LAN.

Ouvir na internet com um serviço reforçado como o SSH é razoavelmente seguro. Ouvir diretamente na internet o desenvolvimento de qualquer coisa é uma ideia fabulosamente ruim. SSH é um gatekeeper. Se você verificar a chave do host, ela protegerá totalmente o MITM. Ele usa boa criptografia. A configuração do encapsulamento não envolve roteamento ou ponte, mas parece que você está se conectando diretamente a partir da máquina SSHD. Isso é muito mais simples de configurar corretamente.

reconhecedores
fonte
Você pode ... Basta executar um servidor SSH no Windows, você não precisa do Linux aqui.
Rahuldottech suporta Monica 14/11
"Então, ao programar na sua máquina remota com um IDE, você se conectará ao host local em vez do IP da LAN." Essa parte não faz sentido para mim, elaborada?
Rahuldottech suporta Monica 14/11
@rahuldottech O encaminhamento de porta SSH funciona no nível tcp. No servidor, o sshd abre conexões com o recurso na LAN local e encaminha o conteúdo desse soquete pelo SSH. Na máquina remota, o cliente ssh escuta em uma porta localhost. Quando você se conecta ao host local nessa porta, é o cliente SSH e apenas conecta as conexões tcp. Meio estranho, mas muito versátil, já que não há roteamento de IP!
trognanders
-1

Recentemente, encontrei uma solução melhor para acesso remoto apenas pessoal. Primeiro vamos discutir o escopo do problema. Existem três problemas que entram em jogo: o nat, o endereço IP e a segurança. Por exemplo, nos casos comuns em que você deseja executar um servidor ssh ou web em uma rede doméstica, a abordagem tradicional é o encaminhamento de porta e o DNS dinâmico e as práticas recomendadas do setor para segurança. Isso tem desvantagens para o seu caso, pois seu dispositivo não possui segurança padrão. Isso pode ser atenuado usando o encaminhamento de porta ssh, em vez de abrir o dispositivo na Internet,

No entanto, existe uma solução mais simples e, acredite ou não, é para serviços ocultos. Para serviços ocultos, basicamente, atuam como encaminhamento de porta, mas lida automaticamente com a passagem nat e não tem um endereço alterado, portanto, o DNS dinâmico não é necessário. É claro que é difícil lembrar o endereço da cebola, mas se você é o único usuário, pode anotá-lo em um dos arquivos de seu projeto. Eu recomendaria ainda analisá-lo com um servidor ssh para fornecer autenticação, mas você pode decidir que o endereço longo é suficiente. Os serviços ocultos também fornecem criptografia de todo o link, exceto o último salto, portanto a única maneira de melhorar é a criptografia de ponta a ponta, mas isso dependeria do dispositivo que você está programando.

hildred
fonte
4
O uso de serviços de cebola só tornará isso mais complicado, sem benefícios adicionais. Tor pode ser útil. Não será neste caso.
Rahuldottech suporta Monica