Port (Protokoll)

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Port ist der Teil einer Netzwerk-Adresse, der die Zuordnung von TCP- und UDP-Verbindungen und -Datenpaketen zu Server- und Client-Programmen durch Betriebssysteme bewirkt. Zu jeder Verbindung dieser beiden Protokolle gehören zwei Ports, je einer auf Seiten des Clients und des Servers. Gültige Portnummern sind 1-65535.

Zweck[Bearbeiten]

Ports dienen zwei Zwecken:

  • Primär sind Ports ein Merkmal zur Unterscheidung mehrerer Verbindungen zwischen demselben Paar von Endpunkten.[1]
  • Ports können auch Netzwerkprotokolle und entsprechende Netzwerkdienste identifizieren.
Beispiele
  • Ein Webbrowser kann während eines Downloads einen weiteren Download vom selben Server starten, weil der Browser dann einen weiteren Port öffnet und eine zusätzliche Verbindung zum selben Port 80 des Servers aufbaut. Der Server antwortet den unterschiedlichen Ports des Browsers mit unterschiedlichen jeweils zusammengehörigen Inhalten. Für eine Unterscheidung der Verbindungen genügen also verschiedene Portnummern an nur einem der beiden Endpunkte.
  • Der Port 25 ist für das Simple Mail Transfer Protocol (SMTP) reserviert. Wenn eine Verbindung zum Port 25 eines Servers aufgebaut wird, wird diese Verbindung vom SMTP-Dienst des Servers angenommen, sofern dieser Dienst verfügbar ist.

Funktionsweise[Bearbeiten]

Startende Server fordern beim Betriebssystem bestimmte Ports an, um Verbindungen annehmen zu können. Dies sind in aller Regel 'well-known Ports', da hier die Portnummer nicht veröffentlicht werden bzw. bekannt sein muss. Die Nummern sind vielmehr den betreffenden Programmen fest zugeordnet.

Clients fordern beim Betriebssystem normalerweise einen zufälligen Port an (zumeist im sehr hohen Bereich über 30000), um Verbindungen aufbauen zu können. Allerdings kann ein Client sich auch an einen bestimmten Port binden (Aufruf von bind()); dies ist zum Beispiel nötig für bestimmte verbindungslose Protokolle, beschränkt allerdings die Nutzung dieses Clients auf einen Prozess pro Computer.

Der Verbindungsaufbau erfolgt durch den Client, der dazu den Port des Servers kennen muss. Durch den Verbindungsaufbau erfährt der Server den Port des Clients, sodass er diesem antworten kann. Im Falle der Benutzung eines 'well-known Ports' wird gleichzeitig die Portnummer serverseitig geändert, um die bekannte, standardisierte Portnummer auch weiterhin für neue Verbindungen bereitstellen zu können.

Geschichte[Bearbeiten]

Portnummern wurden ursprünglich AEN genannt, was für Another Eightbit Number stand.[2]

1981 wurde mit dem Transmission Control Protocol ein viel größerer Bereich von 16 Bit definiert.[3]

Die Standardisierung geht maßgeblich auf Initiativen von Jon Postel Anfang der 1970er Jahre zurück.[4][5]

Standardisierung[Bearbeiten]

Seit 2011 beschreibt mit RFC 6335 ein Request for Comments das Verfahren, nach dem die Internet Assigned Numbers Authority (IANA) Ports Protokollen zuordnet. Es werden drei Bereiche unterschieden:

System Ports[Bearbeiten]

Ports 0–1023

Diese Ports werden auch well-known Ports genannt. Neue Zuordnungen erfolgen nur unter Beteiligung der Internet Engineering Task Force (IETF).

User Ports[Bearbeiten]

Ports 1024–49151

In diesem Bereich können auf Antrag neue Zuordnungen ohne Beteiligung der IETF erfolgen.

Dynamic Ports[Bearbeiten]

Ports 49152–65535

Dieser Bereich ist der freien Verfügung zugedacht.

Bedeutung[Bearbeiten]

Abweichungen von den Zuordnungen der IANA erschweren die Kontaktaufnahme, ohne sie verhindern zu können.

Einen Überblick von Zuordnungen gibt die Liste der standardisierten Ports.

Dienstnamen[Bearbeiten]

Ports sind neben Protokollen auch Namen für die entsprechenden Dienste zugeordnet. Ein solcher Service Name kann beispielsweise für SRV Resource Records verwendet werden.

Auf einem Unix-Rechner ist diese Liste in der Datei /etc/services definiert.

Unter Betriebssystemen der Windows-NT-Linie findet sich diese unter %WINDIR%\system32\drivers\etc\services, bei der Windows9x-Linie direkt im Windows-Ordner (%WINDIR%\services).

Portfilter[Bearbeiten]

Eine Portweiterleitung bewirkt, dass ein angesprochener Port über einen zweiten Port an ein anderes System weitergeleitet wird.

Eine Portsperre ist das Sperren oder Drosseln eines bestimmten Portes bzw. des darauf zugreifenden Dienstes. Das Sperren von Ports wird von einigen Internet Service Providern eingesetzt, um unerwünschte Dienste zu blockieren. Bei Providern können Dienste beispielsweise unerwünscht sein, weil sie sehr viel Datenverkehr verursachen, wie beispielsweise beim Filesharing.

Ports können auch mit einer Firewall gesperrt werden. Bei einer lokalen Firewall wird normalerweise andersherum vorgegangen: Nur die tatsächlich benötigten Ports werden freigegeben und alle anderen Ports bleiben gesperrt. Somit werden die Angriffspunkte auf das geschützte Netz bzw. den PC reduziert.

Portscanner[Bearbeiten]

Portscanner dienen dem Auffinden von Ports und können ein Vorzeichen eines Angriffs sein. Unterstützt die Firewall bzw. der Paketfilter das Portknocking, kann ein Portscan erschwert werden, indem Ports erst dann geöffnet werden, wenn ihnen eine vorher vereinbarte Folge von Paketen gesendet wurden.

Siehe auch[Bearbeiten]

Einzelnachweise[Bearbeiten]

  1.  Internet Engineering Task Force (Hrsg.): Internet Assigned Numbers Authority (IANA) Procedures for the Management of the Service Name and Transport Protocol Port Number Registry (= Best Current Practice. 165). ISSN 2070-1721, S. 6 (BCP 165, abgerufen am 22. Februar 2012).
  2. RFC 433 – Socket Number List. Internet Engineering Task Force. 22. Dezember 1972. Abgerufen am 28. Dezember 2011.
  3. RFC 793 – Transmission Control Protocol. Internet Engineering Task Force. September 1981. Abgerufen am 28. Dezember 2011.
  4. RFC 204 – Sockets in use. Internet Engineering Task Force. 5. August 1971. Abgerufen am 28. Dezember 2011.
  5. RFC 349 – Socket Number List. Internet Engineering Task Force. 30. Mai 1972. Abgerufen am 28. Dezember 2011.

Weblinks[Bearbeiten]