Mit E-Mail-Diensten muss sich jeder Administrator früher oder später einmal beschäftigen. Das zur CeBIT erscheinende ADMIN 02/2012 gibt dazu Praxis-Tipps und ... (mehr)

UDP Hole Punching

Der Trick beim UDP Hole Punching besteht darin, der eigenen Firewall vorzugaukeln, es gäbe bereits ausgegangene Verbindungen, denen sich eingehende Datenpakete zuordnen lassen. Dabei profitiert Skype von dem Umstand, dass Skype für VoIP-Audiodaten das verbindungslose UDP benutzt, das im Gegensatz zu TCP keine zusätzliche Verbindungsinformationen transportiert. Bei UDP sieht die Firewall nur die Adressen und Ports der Quell- und Zielsysteme. Sobald diese bei einem eingehenden UDP-Paket mit den Daten eines NAT-Tabelleneintrags übereinstimmen, leitet die Firewall die UDP-Pakete bedenkenlos an den internen Rechner weiter. Für dieses "Vorgaukeln" bietet sich an, dass Skype ohnehin mit einem externen Vermittlungsrechner (Login-Server) arbeitet, bei dem sich alle kommunikationsbereiten Clients anmelden müssen, auch wenn die späteren Telefonverbindungen nicht über den Vermittlungsserver, sondern direkt über die Skype-Partner laufen.

Obwohl das Skype-Netzwerk prinzipiell eine P2P-Architektur aufweist, laufen Abrechnung und Authentifizierung über einen zentralen Rechner (Login Server). Daher stehen alle Kommunikationspartner ständig mit diesem zentralen Vermittlungsserver in Kontakt und nutzen für den eigentlichen Gesprächsaufbau eine TCP-Verbindung, die jeder Client selbst zum Login-Server aufbaut. Damit weiß der Vermittlungsserver auch zu jeder Zeit, unter welcher IP-Adresse der Skype-Client aktuell erreichbar ist, und daher ist auch dessen Firewall bekannt, welche Pakete sie vom externen Vermittlungsserver durchlassen muss.

Mittelsmann

Die Kommunikation zweier eigentlich von einer Firewall isolierter Clients untereinander kann damit auch indirekt über den Login-Server laufen, der die Pakete mit seiner Adresse als Absender weiterleitet. Prinzipiell funktioniert das auch mit TCP, sogar dann, wenn die Verbindungen durch die Firewall via SSL verschlüsselt sind, indem der Login-Server als "Man in the Middle" fungiert und seinerseits SSL-Verbindungen mit den Clients offenhält.

Das Verfahren heißt aber trotzdem "UDP Hole Punching", weil es sich mit UDP am einfachsten umsetzen lässt, denn die Firewall braucht beim verbindungslosen UDP nur die Quell- und Zieladresse zur Statusüberwachung. So muss sich der Login-Server nicht mithilfe komplizierter Verfahren den Status der Verbindung merken. Auch Hacker nutzen UDP Hole Punching, um mithilfe von Trojanern übernommene Rechner durch eine Firewall fernzusteuern. Der übernommene Rechner bohrt dann selbst von innen ein Loch in die Firewall. Unter Kritikern gilt Skype daher als das größte Bot-Netzwerk der Welt.

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2021