Come funziona esattamente un programma remoto come Team Viewer?


34

Se si utilizza Windows RDP o Remmina, in genere si utilizza l'IP (pubblico) o il nome host collegato del server per accedere. Mi chiedevo come funziona un programma remoto come Team Viewer ? Inoltre, come fa il programma a sapere come instradare quel traffico su Internet?


Sono anche curioso di questo. : D
Gumuruh,

Risposte:


25

TeamViewer, LogMeIn e qualsiasi altro programma che consente una zero configsessione desktop remota utilizza un server di terze parti.

Ad esempio, LogMeIn è un programma simile a TeamViewer in cui è possibile accedere in remoto a un computer esterno alla rete in cui ci si trova attualmente. Noterai che non sono necessarie configurazioni esterne per questo tipo di sessione remota. Ciò è dovuto al fatto che il software installato sul computer remoto (il client LogMeIn) avvia una richiesta in uscita ai server LogMeIn. Poiché questo client ha avviato la richiesta, non è necessario il port forwarding sul Firewall.

Sul computer, al di fuori della rete del computer LogMeIn, è possibile accedere a questo computer in remoto tramite il sito Web di LogMeIn. Questo sito Web accetta la richiesta avviata dal computer remoto e mantiene attiva la connessione per ascoltare una richiesta di sessione remota.

Quando si esegue TeamViewer, viene assegnato un ID sul loro server broker. Effettuare una connessione a un ID Teamviewer e TeamViewer passa la connessione in giù attraverso il tunnel stabilito del client TeamViewer alla destinazione e quindi viene richiesta la password e quindi la connessione viene stabilita in seguito.


3
Domanda estesa: esiste la possibilità di eseguire un server di terze parti e far funzionare VNC (o qualsiasi altro client) allo stesso modo?
TheStoryCoder

2
Buona domanda. In questo modo sarai sulla strada per creare una nuova società TeamViewer ...
giuseppe

@TheStoryCoder qualche fortuna? Penso che dobbiamo prima creare il protocollo di comunicazione tra server e client, quindi creare il server tcp. RDP è il protocollo predefinito di Windows, ma suppongo che non sia progettato per supportare questo. So che TeamViewer utilizza il proprio protocollo. Spero davvero che qualcuno là fuori crei già un progetto opensource per questo :)
Altiano Gerung,

@TheStoryCoder Un modo semplice ma con meno sicurezza: puoi avere un server OpenVpn installato (server A) e il tuo PC (PC A) è collegato a Internet attraverso quel server. E hai un altro PC (PC B) che accetta solo connessioni in entrata o desktop remoto (se Windows) dal tuo server VPN. In questo modo è possibile connettersi a quel PC B dal PC A che stabilisce la connessione tramite il server A.
Janaka R Rajapaksha

8

Teamviewer utilizza la porta 80 per stabilire una connessione a un server centrale. Se viene stabilita la connessione, ottieni un ID univoco e il server sa che sei online. Tutte le comunicazioni possono avvenire sulla porta 80 se altre porte sono bloccate.

Teamviewer ti consente di connetterti direttamente a un indirizzo IP. Devi impostare questo nelle opzioni, per consentire le connessioni LAN in entrata. Questo funziona per le reti locali, e probabilmente anche per le reti WAN, ma poi devi far funzionare il portforwarding, per far sì che la porta 80 si connetta al computer giusto dietro il router / firewall. Ciò rende le cose difficili per la maggior parte delle persone e ingestibili per la maggior parte degli altri, quindi utilizziamo il metodo ID Teamviewer.

Non so se questo significhi che tutto il traffico passa attraverso i server teamviewer, ma potrebbe. (E poiché registra tutti i clic e i tasti premuti, ciò significa probabilmente che potrebbero - in teoria - e poiché conosciamo il PRISM ecc. Probabilmente anche nella realtà - conoscere tutti i tuoi accessi e chiavi segrete.)


3

Questo è ciò che dice l'azienda nella loro Dichiarazione di sicurezza :

Quando si stabilisce una sessione, TeamViewer determina il tipo ottimale di connessione. Dopo l'handshake attraverso i nostri server master, viene stabilita una connessione diretta tramite UDP o TCP nel 70% di tutti i casi (anche dietro gateway standard, NAT e firewall). Il resto delle connessioni viene instradato attraverso la nostra rete di router altamente ridondante tramite TCP o https-tunneling. Non è necessario aprire alcuna porta per lavorare con TeamViewer!

Come descritto più avanti nel paragrafo "Crittografia e autenticazione", nemmeno noi, in quanto operatori dei server di routing, possiamo leggere il traffico di dati crittografato

Così:

  • 1) come altri hanno suggerito, la connessione iniziale da entrambi i client è avviata dal client e passa attraverso la porta 80 quindi non ha problemi con NAT o firewall, può passare attraverso un proxy web, ecc. Dopo questo, tutto è impostato ed entrambi i client devono essere collegati tra loro, quindi:
  • 2.1) utilizza probabilmente la perforazione UPnP o NAT per essere in grado di stabilire una connessione effettiva tra i due client, oppure
  • 2.2) se non è possibile, instraderà il traffico attraverso i loro server, che sarà più lento e potrebbe essere spiato (tuttavia affermano che i dati sono crittografati end-to-end, in quel caso non sarebbe un problema)

qualche soluzione opensource che potresti conoscere?
Altiano Gerung,

@AltianoGerung Non conosco quelli open source che funzionano senza aprire porte come Teamviewer
golimar

0

La maggior parte delle applicazioni come TeamViewer instrada le cose attraverso i loro server se non esiste un percorso diretto disponibile, evitando quindi la necessità di utilizzare IP pubblici e porte aperte.

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.