Llegar a un dispositivo en mi LAN desde Internet

18

Tengo un dispositivo integrado que puedo programar a través de Ethernet IP cuando está conectado en el mismo enrutador con la PC de la siguiente manera:

ingrese la descripción de la imagen aquí

¿Es posible enviar todo el tráfico a través de Internet y aún así poder programarlo? Para que quede un poco más claro, algo como:

ingrese la descripción de la imagen aquí

Motor
fuente
66
"IP Ethernet"? ¿No es eso solo ... una red LAN-como normal?
Grawity
“Programación a través de Ethernet IP" - lo que significa eso exactamente Sería de gran ayuda si se puede especificar qué dispositivo y el IDE que está hablando Asumo el IDE se conecta al dispositivo en una determinada dirección IP y el puerto TCP para recibir comandos?.?
slhck
@grawity sí, es una LAN normal. Como red y en slhck estoy usando codeys IDE y un dispositivo con codeys Runtime en él.
Motor
3
La respuesta obvia es IPv6, por supuesto.
Michael Hampton
1
@grawity Ethernet / IP es un protocolo de automatización industrial que no debe confundirse con IP sobre Ethernet :(
richardb

Respuestas:

50

El método simple (e inseguro)

Lo que está buscando se llama reenvío de puertos [ 1 ] [ 2 ] .

Por ejemplo, supongamos lo siguiente:

  • Su dispositivo programable funciona en el puerto 22y tiene la IP192.168.1.5

  • Tu IP pública es 122.176.11.55

Luego puede ir a la configuración de su enrutador y reenviar un puerto WAN (por ejemplo, 8022) a 192.168.1.5:22.

Ahora, puede acceder de forma remota al dispositivo desde cualquier lugar a través de Internet accediendo en 122.176.11.55:8022lugar de 192.168.1.5:22en su IDE.

Tenga en cuenta que, a menos que tenga una IP estática, su IP pública puede cambiar en cualquier momento, en cuyo caso debe verificar los servicios DNS dinámicos .

NOTA : a menos que su dispositivo tenga algún método de autenticación, alguien con intenciones maliciosas seguramente encontrará acceso a él en la web abierta. Vea a continuación la alternativa segura.

El método seguro (y sinceramente no mucho más complicado)

Deja un PC (o pi frambuesa, o similar) conectado a la red, y el acceso que forma remota a través de algo en lugar seguro como SSH, y luego programar el dispositivo a través de él a través de LAN.
Esto también tiene la ventaja adicional de funcionar incluso si su dispositivo no utiliza TCP o UDP :)

Un poco tedioso, sí. Pero seguro.

rahuldottech
fuente
10
También ayudaría hacer una nota, que si OP establece un reenvío de puertos abierto para hacer esto, todos los demás en todo el mundo podrían cambiar el código. A menos que haya alguna forma de autenticación también, tarde o temprano, los buscadores de puertos encontrarán el puerto y un hacker intentará ingresar, eso es una garantía.
LPChip
@LPChip De hecho! Debería haber mencionado eso, mi mal.
rahuldottech
Buena adición. :) Te daría un +1 por ello, pero ya le di Earler, porque incluso sin la advertencia, ya era una buena respuesta. :)
LPChip
2
@FreeMan más tarde, ya que puede pasar días antes de que aparezca un rastreador de bots, dependiendo del puerto que use, pero antes en el sentido de que, si no tiene suerte, puede suceder en cuestión de minutos.
LPChip
1
@IsmaelMiguel Por supuesto, debes hacer todo lo obvio de seguridad básica. Simplemente no tengo forma de saber cuáles son en este caso específico.
rahuldottech
10

La única respuesta correcta puede ser "VPN".

Simplemente usar IPv6 "funcionaría" (suponiendo que el enrutador no esté configurado para cortafuegos del dispositivo, y todo el ISP, dispositivo y computadora portátil soporte IPv6), pero es una idea terrible por la misma razón que lo es el reenvío de puertos.

Aparte promovida por la conocida propaganda IPv6, que en realidad no siempre desea cualquiera de los dispositivos de la LAN siendo único de identificación o incluso accesible desde internet. No, eso no es bueno.

El reenvío de puertos "funcionaría" con un buen IPv4 antiguo, pero hace que el dispositivo sea accesible no solo para usted sino para todos. Nadie lo sabe, así que no hay problema, ¿verdad?
Bueno, hay un ejército de escáneres de puertos automatizados que funcionan las 24 horas del día, los 7 días de la semana, y escanean puertos / direcciones aleatorias con la esperanza de que cualquier cosa, en cualquier lugar, pueda responder, por lo que generalmente no es óptimo tener un dispositivo que responda a una solicitud externa en línea. Si un dispositivo estará feliz de tener en sí programado de acuerdo a lo que viene en el medio de la red, que es una receta para el desaster.
En principio, lo anterior también es cierto para VPN, pero es lo mejor que puede obtener, si desea acceder. Lo único realmente seguro es que no hay conexión a Internet, lo cual no es una opción práctica por razones obvias. La siguiente cosa más segura para "no internet" es VPN. Exactamente un puerto en exactamente un dispositivo (bueno, depende, hasta tres puertos), exponiendo VPN y nada más , reenviado a Internet.

VPN le permite, pero nadie más, acceder a un dispositivo en su LAN a través de Internet como si estuviera en la misma LAN (aunque un poco más lento). Impide el acceso no autorizado, proporciona confidencialidad e integridad de datos.

Prácticamente todos los enrutadores sin mierda admiten al menos un sabor de VPN listo para usar. Desafortunadamente, dependiendo del modelo de enrutador que tenga, puede ser un mal sabor de VPN o puede estar mal documentado cómo configurar la computadora remota. Aún así, a pesar de la posible molestia de descubrir cómo configurarlo, si no tiene nada mejor, ¡esa es la mejor opción!
Las cajas NAS más comunes admiten dos o tres métodos de VPN sin succión, y cada computadora de 3 vatios con tarjeta de crédito de $ 20 puede ejecutar un servidor VPN, no hay problema. Incluso muchos teléfonos móviles modernos son compatibles con VPN sin tener que instalar un software adicional, por lo que incluso puede acceder a su red doméstica cuando usa Internet móvil de su teléfono (incluso a través de un punto de acceso privado).

Por ejemplo, L2TP / IPSec puede no ser la mejor opción, pero es 99% bueno y toma un minuto configurarlo en mi Disk Station y en mi teléfono Samsung. Otro minuto si mi portátil con Windows también lo va a usar (independientemente del teléfono). No se necesita software adicional.
OpenVPN demora entre 3 y 5 minutos de configuración porque tendrá que descargar e instalar el software del cliente en la computadora portátil. Pero en la imagen general, una configuración de 5 minutos cuenta como "cero", en comparación con ser completamente inseguro.

Damon
fuente
55
Comprar servicios de terceros no es la única respuesta. Puede obtener el mismo efecto con SSH o RDP.
jpaugh
44
Las dos y únicas respuestas correctas son los túneles VPN o SSH ... Algunos protocolos VPN tampoco son muy buenos para prevenir MITM ...
trognanders
55
SSH es mucho más barato, más conveniente y más fácil de configurar y probablemente la mejor opción en este escenario
rahuldottech
@jpaugh: VPN no involucra ningún servicio de terceros. Si bien estoy de acuerdo en que se puede hacer que SSH funcione, no es lo mismo que VPN en lo que respecta a la facilidad de configuración, la disponibilidad universal sin instalaciones adicionales, y por último, pero no menos importante, la usabilidad perfecta . Ahora, sobre RDP ... por supuesto que estás bromeando, ¿verdad? No solo es la implementación prístina el software probablemente más explotado del mundo (o al menos en el top 5), sino que también el protocolo en sí es inherentemente inseguro, utilizando cifrados rotos (viables, no teóricos) y una versión TLS que fue reemplazado hace una década.
Damon
44
-1 simplemente para "one and only" en el título, SSH con reenvío de puertos también es completamente válido y probablemente más seguro, ya que no necesariamente tiene que dar acceso remoto a toda su red, solo un puerto de un dispositivo, y muy probablemente es fácil de configurar y no confía en la implementación de software aleatorio de un enrutador de una característica poco utilizada.
Bill K
2

Hospede una VPN, ya sea en un dispositivo de enrutador / puerta de enlace de seguridad u otra casilla con reenvío de puertos a esa casilla. Siempre que desee trabajar de forma remota, conéctese a la VPN y verá el dispositivo incorporado como si estuviera en una red local. Probablemente sea una buena idea colocar el dispositivo integrado en una subred aislada, para ayudar a prevenir ataques en su red principal si la VPN o el dispositivo integrado se ven comprometidos.

Michael P
fuente
1

Convierta una PC con Windows sin IDE en una PC con Linux en una configuración razonablemente segura con sshd ejecutándose. Puerto hacia adelante desde su enrutador al puerto SSH en la máquina Linux. Use túneles SSH para conectarse a la IP del dispositivo integrado. Luego, cuando programe en su máquina remota con un IDE, se conectará a localhost en lugar de a la LAN IP.

Escuchar en Internet con un servicio reforzado como SSH es razonablemente seguro. Escuchar directamente en Internet con cualquier cosa desarrollada es una idea fabulosamente mala. SSH es un guardián. Si se asegura de verificar la clave de host, protege absolutamente contra MITM. Utiliza buena criptografía. La configuración de túnel no implica enrutamiento o puente, sino que parece que se está conectando directamente desde la máquina SSHD. Esto es mucho más simple de configurar correctamente.

trognanders
fuente
Puede ... Simplemente ejecute un servidor SSH en Windows, no necesita Linux aquí.
rahuldottech
"Luego, cuando programe en su máquina remota con un IDE, se conectará a localhost en lugar de a la LAN IP". ¿Esto no tiene sentido para mí, elaborado?
rahuldottech
@rahuldottech El reenvío de puertos SSH funciona a nivel de TCP. En el servidor, el sshd abre conexiones al recurso en la LAN local y reenvía el contenido de ese socket a través de SSH. En la máquina remota, el cliente ssh escucha en un puerto localhost. Cuando se conecta a localhost en ese puerto, es el cliente SSH, y solo conecta las conexiones tcp. ¡Un poco extraño pero realmente versátil ya que no hay enrutamiento ip!
trognanders
-1

Recientemente he encontrado una mejor solución para el acceso remoto solo personal. Primero discutamos el alcance del problema. Hay tres problemas que entran en juego: la nat, la dirección IP y la seguridad. Por ejemplo, en los casos comunes en los que desea ejecutar un servidor web o ssh en una red doméstica, el enfoque tradicional es el reenvío de puertos y el dns dinámico y las mejores prácticas estándar de la industria para la seguridad. Esto tiene desventajas para su caso, ya que su dispositivo no tiene seguridad estándar. Esto puede mitigarse utilizando el reenvío de puertos ssh en lugar de abrir su dispositivo a Internet,

Sin embargo, existe una solución más simple, y lo creas o no, es para los servicios ocultos. Los servicios ocultos básicamente actúan como un puerto de reenvío, pero maneja automáticamente el recorrido natural y no tiene una dirección cambiante, por lo que no se necesita dns dinámico. Por supuesto, es difícil recordar la dirección de la cebolla, pero si usted es el único usuario, puede escribirla en uno de sus archivos de proyecto. Recomendaría seguir emparejando esto con un servidor ssh para proporcionar autenticación, pero puede decidir que la dirección de cebolla larga es suficiente. Además, los servicios ocultos proporcionan cifrado de todo el enlace, excepto el último salto, por lo que la única forma de mejorar es el cifrado de extremo a extremo, pero eso dependería del dispositivo que esté programando.

hildred
fuente
44
El uso de los servicios de cebolla solo hará que esto sea más complicado sin beneficios adicionales. Tor puede ser útil. No será en este caso.
rahuldottech