Wie genau funktioniert ein Remote-Programm wie Team Viewer?

34

Wenn Sie Windows RDP oder Remmina verwenden, verwenden Sie normalerweise die IP (öffentlich) oder den angehängten Hostnamen des Servers, um sich anzumelden. Ich habe mich gefragt, wie ein Remote-Programm wie Team Viewer funktioniert. Und wie kann das Programm den Datenverkehr über das Internet leiten?

Rudolph
quelle
Ich bin auch neugierig. : D
gumuruh

Antworten:

25

TeamViewer, LogMeIn und jedes andere Programm, das eine zero configRemotedesktopsitzung ermöglicht, verwendet einen Fremdanbieter-Server.

Zum Beispiel ist LogMeIn ein Programm ähnlich wie TeamViewer, mit dem Sie sich remote an einem Computer außerhalb des Netzwerks anmelden können, in dem Sie sich gerade befinden. Sie werden feststellen, dass für diese Art der Remotesitzung keine externen Konfigurationen erforderlich sind. Dies liegt daran, dass die Software, die Sie auf dem Remotecomputer installiert haben (der LogMeIn-Client) , eine ausgehende Anforderung an die LogMeIn-Server initiiert . Da dieser Client die Anforderung initiiert hat, ist keine Portweiterleitung auf der Firewall erforderlich.

Auf Ihrem Computer außerhalb des Netzwerks des LogMeIn-Computers können Sie über die LogMeIn-Website remote auf diesen Computer zugreifen. Diese Website akzeptiert die initiierte Anforderung vom Remotecomputer und hält die Verbindung aufrecht, um auf eine Remotesitzungsanforderung zu warten.

Wenn Sie TeamViewer ausführen, wird Ihnen auf dem Broker-Server eine ID zugewiesen. Sie stellen eine Verbindung zu einer Teamviewer-ID her und TeamViewer leitet die Verbindung über den vom TeamViewer-Client eingerichteten Tunnel zum Ziel weiter. Anschließend werden Sie zur Eingabe eines Kennworts aufgefordert und die Verbindung wird anschließend hergestellt.

Kobaltz
quelle
3
Erweiterte Frage: Gibt es eine Möglichkeit, einen solchen Drittanbieter-Server selbst zu betreiben und VNC (oder einen anderen Client) auf die gleiche Weise arbeiten zu lassen?
TheStoryCoder
2
Gute Frage. Auf diese Weise sind Sie auf dem Weg, ein neues TeamViewer-Unternehmen zu gründen ...
giuseppe
@TheStoryCoder Hast du Glück? Ich denke, wir müssen das Kommunikationsprotokoll zuerst zwischen Server und Client erstellen, dann den TCP-Server erstellen. RDP ist das Standardprotokoll von Windows, aber ich denke, es ist nicht dafür ausgelegt, dies zu unterstützen. Ich weiß, dass TeamViewer ein eigenes Protokoll verwendet. Ich hoffe wirklich, dass jemand da draußen bereits ein
Open Source-
@TheStoryCoder Ein einfacher Weg, aber mit geringerer Sicherheit: Sie können einen Server mit OpenVpn (Server A) installieren und Ihr PC (PC A) ist über diesen Server mit dem Internet verbunden. Und Sie haben einen anderen PC (PC B), der nur eingehende Verbindungen oder Remotedesktop (falls Windows) von Ihrem VPN-Server akzeptiert. Auf diese Weise können Sie von Ihrem PC A aus eine Verbindung zu diesem PC B herstellen, der die Verbindung über Server A herstellt.
Janaka R Rajapaksha
8

Teamviewer stellt über Port 80 eine Verbindung zu einem zentralen Server her. Wenn die Verbindung hergestellt wird, erhalten Sie eine eindeutige ID und der Server weiß, dass Sie online sind. Die gesamte Kommunikation kann über Port 80 erfolgen, wenn andere Ports blockiert sind.

Mit Teamviewer können Sie sich direkt mit einer IP-Adresse verbinden. Sie müssen dies in den Optionen einstellen, um eingehende LAN-Verbindungen zuzulassen. Dies funktioniert für lokale Netzwerke und wahrscheinlich auch für WAN-Netzwerke, aber dann muss die Port-Weiterleitung funktionieren, damit Port 80 eine Verbindung zum richtigen Computer hinter dem Router / der Firewall herstellt. Das erschwert den meisten Menschen die Arbeit und macht sie für die meisten anderen unhandlich. Daher verwenden wir die Teamviewer ID-Methode.

Ich weiß nicht, ob dies bedeutet, dass der gesamte Datenverkehr über die Teamviewer-Server geleitet wird, aber möglicherweise. (Und da es alle Klicks und Tastendrücke registriert, bedeutet dies wahrscheinlich, dass sie - theoretisch - und da wir über PRISM usw. wahrscheinlich auch in der Realität Bescheid wissen - über alle Ihre Logins und geheimen Schlüssel Bescheid wissen.)

SPRBRN
quelle
3

Das sagt das Unternehmen in seiner Sicherheitserklärung :

Beim Aufbau einer Sitzung ermittelt TeamViewer den optimalen Verbindungstyp. Nach dem Handshake über unsere Masterserver wird in 70% aller Fälle eine direkte Verbindung über UDP oder TCP hergestellt (auch hinter Standard-Gateways, NATs und Firewalls). Die restlichen Verbindungen werden über unser hochredundantes Routernetzwerk via TCP oder https-Tunneling geroutet. Sie müssen keine Ports öffnen, um mit TeamViewer zu arbeiten!

Wie weiter unten im Abschnitt "Verschlüsselung und Authentifizierung" beschrieben, können nicht einmal wir als Betreiber der Routing-Server den verschlüsselten Datenverkehr lesen

So:

  • 1) Wie andere vorgeschlagen haben, wird die anfängliche Verbindung von beiden Clients vom Client initiiert und geht über Port 80, sodass es keine Probleme mit NAT oder Firewalls gibt, über einen Webproxy usw. gehen kann. Danach ist alles eingerichtet und beides Clients müssen miteinander verbunden sein, dann:
  • 2.1) verwendet wahrscheinlich UPnP oder NAT Hole Punching , um eine tatsächliche Verbindung zwischen den beiden Clients herzustellen, oder
  • 2.2) Wenn dies nicht möglich ist, wird der Datenverkehr über die Server geleitet, die langsamer sind und ausspioniert werden können. (Sie geben jedoch an, dass die Daten von Ende zu Ende verschlüsselt sind. In diesem Fall wäre dies kein Problem.)
Golimar
quelle
Gibt es eine OpenSource-Lösung, die Ihnen vielleicht bekannt ist?
Altiano Gerung
@AltianoGerung Ich kenne keine Open
Source
0

Die meisten Anwendungen wie TeamViewer leiten Dinge über ihre Server, wenn kein direkter Pfad verfügbar ist, und umgehen daher die Notwendigkeit, öffentliche IPs und offene Ports zu verwenden.

tief
quelle