Was ist ein Port?

Kurzantwort: Ein Kommunikationskanal für Computer im Netzwerk

Das Ganze im Detail:

Damit alle Computer, die an das Internet angebunden sind, miteinander kommunizieren können, wurde der Übertragungsstandard TCP/IP entworfen. Hier handelt es sich um ein Protokoll, wie Daten im Netzwerk (dem Internet) formatiert und übertragen werden. TCP/IP ist nicht vom Betriebssystem der Computer abhängig, es können also verschiedene Systeme miteinander kommunizieren.

Jeder Computer im Internet hat eine sogenannte IP-Adresse (IP = Internet Protocol), welche mit einer Telefonnummer vergleichbar ist. Anders als Telefonnummern sind IP-Adressen jedoch in Ihrem Nummernbereich beschränkt. Eine IP-Adresse ist immer im Format “###.###.###.###” aufgebaut. Vier Nummernblöcke jeweils durch einen Punkt getrennt. Jeder Nummernblock kann jedoch nur einen Wert von 0 bis 255 enthalten. Die IP-Adresse des a² Webservers lautet z.B. “66.98.132.62”.

Mit dieser IP-Adresse könnte nun ein Programm Daten zu einem anderen Computer schicken, möchte man meinen. Es fehlt aber noch etwas wichtiges. Woher soll der empfangende Computer wissen, für welches Programm die ankommenden Daten bestimmt sind? Aus diesem Grund gibt es Portnummern, sogenannte Ports. Bei jeder Übertragung von Daten im Internet muss das Datenpaket also die Empfänger-IP und die Portnummer des Dienstes kennen, welches die Daten empfangen soll.

Stellen Sie sich Ports wie die Durchwahlen beim Telefonsystem vor. Unter einer Telefonnummer erreichen Sie z.B. eine bestimmte Firma (0123-45678). Wollen Sie jedoch direkt mit einer bestimmten Person in der Firma sprechen wählen Sie die Durchwahl dazu (0123-45678-90). Wenn es eine Durchwahl nicht gibt, bekommen Sie keine Verbindung. Das gleiche passiert auch beim Versuch, einen Computer auf einem Port zu kontaktieren, an dem kein Dienst erreichbar ist (man sagt auch: an dem kein Dienst lauscht).

Wenn Ihr Browser die Webseite Google.de abruft, geschieht dies immer über den Port 80 (216.239.33.100:80). Zu einem vollständigen Datentransfer gehört also immer IP-Adresse:Port. Dies gilt für ausgehende Daten (Anfrage an den Webserver welche Seite übertragen werden soll) sowie für empfangene Daten (die Webseite selbst die übertragen wird).

Portnummern sind von 0 bis 65535 möglich. Wobei dieser Bereich in drei Kategorien unterteilt wird:

  • 0 bis 1023 sind “well known ports”, d.h. diese Nummern sind reserviert für spezielle Dienste wie FTP (21), SMTP (25), HTTP (80), POP3 (110), etc.
  • 1024 bis 49151 sind “registered ports”, d.h. diese sind für bestimmte Dienste registriert.
  • 49152 bis 65535 sind “dynamic and/or private ports”, d.h. diese kann jeder verwenden.

Die Portnummern werden von der IANA
(Internet Assigned Numbers Authority) verwaltet. Das Problem an der Sache ist aber, dass es keinerlei Kontrollmechanismen gibt, die verhindern, dass z.B. ein Trojaner den Port 80 verwendet. Somit würde der Trojaner von einem unachtsamen Benutzer als Webserver erkannt und schlimmstenfalls ignoriert werden.

Trojaner sind nichts anderes als Programme, die einen Port dazu verwenden, um einem Angreifer Daten zu übermitteln. Sie halten einen Port offen. Z.B. Port 31337. Der Angreifer baut eine Verbindung zum Trojaner auf und schickt Anfragen hin, wie z.B. eine Anfrage für ein Bildschirmfoto. Der Trojaner erstellt das Bildschirmfoto und überträgt es anschließend über den Port zum Angreifer. Bei den meisten neueren Trojanern ist die Portnummer frei konfigurierbar. Das erschwert eine Identifikation des Trojaners anhand der Portnummer.

Die Frage, wie ein Port geschlossen werden kann lässt sich daher schnell beantworten: Beenden Sie das Programm, das den Port offen hält. Es gibt jedoch mehrere Ansätze, wie man die Kommunikation über bestimmte Ports unterbinden kann. Lesen Sie diese im Folgeartikel:

Wie schließe ich einen Port?