Raggiungere un dispositivo nella mia LAN da Internet


18

Ho un dispositivo incorporato che posso programmare tramite Ethernet IP quando è collegato sullo stesso router con il PC come segue:

inserisci qui la descrizione dell'immagine

È possibile inviare l'intero traffico attraverso Internet ed essere ancora in grado di programmarlo? Per renderlo un po 'più chiaro, qualcosa del tipo:

inserisci qui la descrizione dell'immagine


6
"Ethernet IP"? Non è solo ... una normale rete simile a una LAN?
user1686

"Programmazione tramite Ethernet IP" - che cosa significa esattamente? Sarebbe di aiuto se tu potessi specificare di quale dispositivo e IDE stai parlando. Suppongo che l'IDE si colleghi al dispositivo su un determinato indirizzo IP e porta TCP per ricevere comandi?
slhck,

@grawity sì è una normale LAN. Come una rete e su slhck sto usando IDS di codesys e un dispositivo con Runtime di codesys su di esso!
Motore

3
La risposta ovvia è ovviamente IPv6.
Michael Hampton,

1
@grawity Ethernet / IP è un protocollo di automazione industriale, da non confondere con IP su Ethernet :(
richardb

Risposte:


50

Il metodo semplice (e non sicuro)

Quello che stai cercando si chiama port forwarding [ 1 ] [ 2 ] .

Ad esempio, supponiamo che:

  • Il dispositivo programmabile funziona su porta 22e ha l'IP192.168.1.5

  • Il tuo IP pubblico è 122.176.11.55

Poi si può andare in impostazione del router e inoltrare una porta WAN (per esempio, 8022) a 192.168.1.5:22.

Ora puoi accedere in remoto al dispositivo da qualsiasi luogo tramite Internet accedendo 122.176.11.55:8022invece che 192.168.1.5:22nel tuo IDE.

Tieni presente che, a meno che tu non abbia un IP statico, il tuo IP pubblico può cambiare in qualsiasi momento, nel qual caso dovresti controllare i servizi DNS dinamici .

NOTA : a meno che il dispositivo non disponga di un metodo di autenticazione, qualcuno con intenzioni dannose troverà quasi sicuramente accesso ad esso sul Web aperto. Vedi sotto per alternativa sicura.

Il metodo sicuro (e onestamente non molto più complicato)

Lascia un PC (o raspberry pi o simile) connesso alla tua rete e accedi a quello remoto invece tramite qualcosa di sicuro come SSH, quindi programma il tuo dispositivo tramite LAN.
Questo ha anche l'ulteriore vantaggio di funzionare anche se il tuo dispositivo non utilizza TCP o UDP :)

Un po 'noioso, sì. Ma sicuro.


10
Aiuterebbe anche a prendere nota del fatto che se OP imposta un portforwarding aperto a questo scopo, tutti gli altri in tutto il mondo potrebbero potenzialmente modificare il codice. A meno che non ci sia anche una qualche forma di autenticazione, prima o poi, i portatori troveranno la porta e un hacker tenterà di entrare, questa è una garanzia.
LPChip,

@LPChip Indeed! Avrei dovuto dirlo, mio ​​male.
Rahuldottech supporta Monica il

Bella aggiunta. :) Ti darei un +1 per questo, ma l'ho già dato in precedenza, perché anche senza l'avviso, era già una buona risposta. :)
LPChip

2
@FreeMan più tardi come in, possono volerci giorni prima che arrivi un crawler bot, a seconda della porta che usi, ma prima nel senso che, se sei sfortunato, può succedere in pochi minuti.
LPChip,

1
@IsmaelMiguel Certo, dovresti fare tutte le ovvie cose fondamentali sulla sicurezza. Non ho proprio modo di sapere cosa siano in questo caso specifico.
Rahuldottech supporta Monica il

11

L'unica e corretta risposta può essere "VPN".

Il semplice utilizzo di IPv6 "funzionerebbe" (presupponendo che il router non sia configurato per il firewall del dispositivo e che tutti gli ISP, i dispositivi e i laptop supportino IPv6), ma è un'idea terribile per lo stesso motivo per cui è il port forwarding.

A parte quello promosso dalla nota propaganda IPv6, in realtà non si vuole mai che nessuno dei dispositivi sulla propria LAN sia identificabile in modo univoco o addirittura accessibile da Internet. No, non è una buona cosa.

Il port forwarding "funzionerebbe" con il buon vecchio IPv4, ma rende il dispositivo accessibile non solo a te ma a tutti. Nessuno lo sa, quindi non è un problema, giusto?
Bene, c'è un esercito di scanner di porte automatizzati in esecuzione 24 ore su 24, 7 giorni su 7 e che esegue la scansione di indirizzi / porte casuali nella speranza che qualcosa, ovunque possa eventualmente rispondere, quindi in generale avere qualsiasi dispositivo che risponderà a una richiesta esterna online non è ottimale. Se un dispositivo si sarà felicemente programmato in base a ciò che arriva attraverso la rete, questa è una ricetta per il disastro.
Quanto sopra è in linea di principio vero anche per VPN, ma è abbastanza buono come puoi ottenere, se vuoi accedere. L'unica cosa veramente sicura non è affatto una connessione a Internet, che non è un'opzione pratica per ovvie ragioni. La prossima cosa più sicura per "niente internet" è la VPN. Esattamente una porta su esattamente un dispositivo (beh, dipende, fino a tre porte), esponendo VPN e nient'altro , port forwarding a Internet.

La VPN ti consente - ma nessun altro - di accedere a un dispositivo sulla tua LAN via Internet come se fossi sulla stessa LAN (anche se un po 'più lentamente). Previene l'accesso non autorizzato, fornisce riservatezza e integrità dei dati.

Praticamente ogni router no-shit supporta almeno un sapore di VPN pronto all'uso. Sfortunatamente, a seconda del modello di router in uso, potrebbe essere un cattivo sapore della VPN o potrebbe essere scarsamente documentato su come configurare il computer remoto. Tuttavia, nonostante il possibile fastidio di capire come configurarlo, se non hai niente di meglio, questa è di gran lunga l'opzione migliore!
Le scatole NAS più comuni supportano due o tre metodi no-suck di VPN, e ogni computer da 3 Watt da 20 carte di credito può eseguire un server VPN, nessun problema. Anche molti moderni telefoni cellulari supportano la VPN senza dover installare software aggiuntivo, quindi puoi persino accedere alla tua rete domestica quando usi Internet mobile del tuo telefono (anche tramite hotspot privato).

Ad esempio, L2TP / IPSec potrebbe non essere la scelta migliore, ma è buona al 99% e richiede un minuto per essere configurata su Disk Station e sul mio telefono Samsung. Un altro minuto se il mio laptop Windows deve usarlo anche (indipendentemente dal telefono). Nessun software aggiuntivo necessario.
OpenVPN richiede circa 3-5 minuti di installazione perché dovrai scaricare l'installazione del software client sul laptop. Ma in una visione più ampia, una configurazione di 5 minuti conta come "zero", rispetto ad essere completamente non sicura.


5
L'acquisto di servizi di terze parti non è l'unica risposta. Puoi ottenere lo stesso effetto con SSH o RDP.
jpaugh

4
Le due e uniche risposte corrette sono i tunnel VPN o SSH ... Alcuni protocolli VPN non sono molto
efficaci

5
SSH è molto più economico, più conveniente e più facile da installare e probabilmente l'opzione migliore in questo scenario
rahuldottech supporta Monica il

@jpaugh: la VPN non prevede alcun servizio di terze parti. Mentre concordo prontamente che SSH può essere fatto funzionare, non è affatto uguale alla VPN quando si tratta di facilità di installazione, disponibilità universale senza installazioni extra-no-hoops e, ultimo ma non meno importante, usabilità senza soluzione di continuità . Ora, riguardo a RDP ... stai scherzando, vero? Non è solo l'implementazione incontaminata il software probabilmente più sfruttato al mondo (o almeno nella top-5), ma anche il protocollo stesso è intrinsecamente insicuro, usando cifre rotte (realizzabili, non teoriche) e una versione TLS che è stato sostituito un decennio fa.
Damon,

4
-1 semplicemente per "uno e solo" nel titolo, SSH con port forwarding è anche completamente valido e probabilmente più sicuro poiché non è necessario fornire l'accesso remoto a tutta la rete, solo una porta di un dispositivo e molto probabilmente è facile da configurare e non ti affidi all'implementazione casuale del software di un router di una funzione usata raramente.
Bill K,

2

Ospitare una VPN, in un dispositivo router / gateway di sicurezza, o in un'altra casella con il port forwarding a quella casella. Ogni volta che vuoi lavorare in remoto, connettiti alla VPN e vedrai il dispositivo incorporato come se fosse su una rete locale. Probabilmente sarebbe una buona idea posizionare il dispositivo incorporato in una sottorete isolata, per aiutare a prevenire attacchi alla rete principale se la VPN o il dispositivo incorporato sono compromessi.


1

Trasforma il PC Windows senza IDE in un PC Linux in una configurazione ragionevolmente sicura con sshd in esecuzione. Porta avanti dal router alla porta SSH sulla macchina Linux. Utilizzare i tunnel SSH per connettersi all'IP del dispositivo incorporato. Quindi, quando si programma sul proprio computer remoto con un IDE, ci si connetterà a localhost anziché all'IP LAN.

Ascoltare su Internet con un servizio rafforzato come SSH è ragionevolmente sicuro. Ascoltare direttamente su Internet con lo sviluppo qualsiasi cosa è una favolosamente cattiva idea. SSH è un gatekeeper. Se si assicura di verificare la chiave host, protegge assolutamente da MITM. Usa una buona crittografia. La configurazione del tunneling non prevede il routing o il bridging ma sembra invece che ci si stia collegando direttamente dalla macchina SSHD. È molto più semplice da configurare correttamente.


Puoi ... Basta eseguire un server SSH su Windows, non hai bisogno di Linux qui.
Rahuldottech supporta Monica il

"Quindi durante la programmazione sul tuo computer remoto con un IDE, ti collegherai a localhost invece che all'IP della LAN." Questo po 'non ha senso per me, elaborato?
Rahuldottech supporta Monica il

Il port forwarding di @rahuldottech SSH funziona a livello di tcp. Sul server sshd apre le connessioni alla risorsa sulla lan locale e inoltra il contenuto di quel socket su SSH. Sul computer remoto il client ssh è in ascolto su una porta localhost. Quando ti connetti a localhost su quella porta, è il client SSH e aggancia semplicemente le connessioni tcp. Un po 'strano ma davvero versatile poiché non c'è routing IP!
Trognandro

-1

Di recente ho trovato una soluzione migliore per l'accesso remoto solo personale. Per prima cosa discutiamo l'ambito del problema. Ci sono tre problemi che entrano in gioco: il nat, l'indirizzo IP e la sicurezza. Ad esempio, nei casi comuni in cui si desidera eseguire un server SSH o Web su una rete domestica, l'approccio tradizionale è il port forwarding e il DNS dinamico e le best practice standard di settore per la sicurezza. Questo ha degli svantaggi per il tuo caso in quanto il tuo dispositivo non ha una sicurezza standard. Ciò può essere mitigato utilizzando il port forwarding ssh invece di aprire il dispositivo a Internet,

Esiste tuttavia una soluzione più semplice e che ci crediate o no che si tratti di servizi nascosti. I servizi nascosti agiscono sostanzialmente come port forward, ma gestiscono automaticamente nat traversal e non hanno un indirizzo che cambia quindi non è necessario un DNS dinamico. Esistono ovviamente problemi di difficile comprensione dell'indirizzo cipolla, ma se sei l'unico utente, puoi scriverlo in uno dei tuoi file di progetto. Vorrei raccomandare ancora di associarlo a un server SSH per fornire l'autenticazione, ma potresti decidere che l'indirizzo a cipolla lunga sia sufficiente. Inoltre, i servizi nascosti forniscono la crittografia dell'intero collegamento ad eccezione dell'ultimo hop, quindi l'unico modo per migliorare è la crittografia end-to-end, ma ciò dipende dal dispositivo che si sta programmando.


4
L'uso dei servizi di cipolla renderà questo modo più complicato senza ulteriori benefici. Tor può essere utile. Non sarà in questo caso.
Rahuldottech supporta Monica il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.