Port: Unterschied zwischen den Versionen

Aus Mikiwiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:
| 49152 - 65535 || dynamic ports<br>private ports || Variabel einsetzbare unregistrierte Ports, die keiner Anwendung zugeordnet wurden.
| 49152 - 65535 || dynamic ports<br>private ports || Variabel einsetzbare unregistrierte Ports, die keiner Anwendung zugeordnet wurden.
|}
|}
Die Datei "/etc/services" enthält eine Liste bekannter Ports samt der Dienstnamen sowie einer kurzen Beschreibung. Die Zuordnung von Diensten zu Ports ist jedoch unverbindlich; praktisch alle Dienste erlauben die freie Wahl, auf welchem Port sie lauschen sollen. Gerade für sicherheitsrelevante Programme werden häufig Portnummern abseits des Standards benutzt, um sie einer schnellen Entdeckung (etwa durch [[Portscanner]]) zu entziehen.


Damit ein Rechner gleichzeitig mehrere Verbindungen (engl. multiplexing) bearbeiten kann, müssen diese voneinander unterschieden werden. Dazu bedient sich das [[Transmission Control Protocol]] der Ports. Jeder Anwendung, die TCP benutzen will, wird ein Port zugeordnet. Es gibt 65'536 verschiedene, fortlaufend numerierte Ports. Es gelten folgende Grundsätze:
Damit ein Rechner gleichzeitig mehrere Verbindungen (engl. multiplexing) bearbeiten kann, müssen diese voneinander unterschieden werden. Dazu bedient sich das [[Transmission Control Protocol]] der Ports. Jeder Anwendung, die TCP benutzen will, wird ein Port zugeordnet. Es gibt 65'536 verschiedene, fortlaufend numerierte Ports. Es gelten folgende Grundsätze:
Zeile 63: Zeile 61:
| 995 || || Verschlüsselt Mails abrufen mit POP3S || TCP
| 995 || || Verschlüsselt Mails abrufen mit POP3S || TCP
|}
|}
Die Datei "/etc/services" enthält eine Liste bekannter Ports samt der Dienstnamen sowie einer kurzen Beschreibung. Die Zuordnung von Diensten zu Ports ist jedoch unverbindlich; praktisch alle Dienste erlauben die freie Wahl, auf welchem Port sie lauschen sollen. Gerade für sicherheitsrelevante Programme werden häufig Portnummern abseits des Standards benutzt, um sie einer schnellen Entdeckung (etwa durch [[Portscanner]]) zu entziehen.
Ein Port besitzt nur die Zustände offen oder geschlossen - entweder lauscht ein Programm darauf oder nicht. In jedem Fall darf ein anfragender Rechner bei Kontaktversuchen eine Antwort erwarten:
* Wartet ein Programm auf eine neue Verbindung, so erhält der anfragende Rechner ein Antwortpaket mit gesetzten SYN-ACK-Flags.
* Ist der Port nicht belegt, kommt stattdessen ein Paket mit RST-ACK-Flags zurück.
Falls keine Antwort erfolgt, kann das zwei Ursachen haben:
* Das Paket ist auf dem Weg verloren gegangen.
* Eine [[Firewall]] hat das Paket verworfen.
Das ist eines der Hauptprobleme beim Portscanning: Es lässt sich bei einzelnen Paketen nicht mit Bestimmtheit sagen, ob der Port gefiltert ist (also eine Firewall das Paket verwirft), oder ob das Paket nur verlorengegangen ist.


== Sicherheit ==
== Sicherheit ==

Version vom 21. Februar 2010, 00:07 Uhr

Ein Port (engl. Anschluss) ist ein Teil einer Adresse, der Datensegmente einem Netzwerkdienst zuordnet.

Konzept

Das Port-Konzept ist beispielsweise in TCP, UDP und SCTP vorgesehen, um Protokolle auf den höheren Schichten des OSI-Modells zu adressieren. In diesen drei Protokollen ist die Portnummer 16 Bit gross, sie kann also Werte von 0 bis 65535 annehmen.

Port Bezeichnung Beschreibung
0 - 1023 well known ports Bestimmten Anwendungen von der IANA fest zugeordnete und allgemein bekannte Ports. Unter Linux dürfen nur mit root-Rechten laufende Programme diese Ports öffnen, weswegen sie auch als "privilegierte Ports" bekannt sind.
1024 - 49151 registered ports Von Anwendungsherstellern bei der IANA für eigene Protokolle registrierte Ports. Die Registrierung hat den Vorteil, dass eine Anwendung anhand der Portnummer identifiziert werden kann - allerdings nur, wenn die Anwendung tatsächlich den registrierten Port verwendet.
49152 - 65535 dynamic ports
private ports
Variabel einsetzbare unregistrierte Ports, die keiner Anwendung zugeordnet wurden.

Damit ein Rechner gleichzeitig mehrere Verbindungen (engl. multiplexing) bearbeiten kann, müssen diese voneinander unterschieden werden. Dazu bedient sich das Transmission Control Protocol der Ports. Jeder Anwendung, die TCP benutzen will, wird ein Port zugeordnet. Es gibt 65'536 verschiedene, fortlaufend numerierte Ports. Es gelten folgende Grundsätze:

  • Ein Paar aus IP-Adresse und Port wird Socket genannt.
  • Eine Verbindung zwischen zwei Rechnern ist eindeutig durch zwei Sockets bestimmt.
  • Ein Rechner kann mehrere TCP-Verbindungen gleichzeitig bearbeiten. Dafür werden verschiedene Ports bestimmt. Dieser Vorgang wird Multiplexing genannt.

Beispielsweise kommunizieren Webclient (z. B. ein Webbrowser) und Webserver mit Hilfe von IP-Adressen und Ports auf direktem Wege miteinander:

CLIENT Quell-IP-Adresse:Quell-Port           SERVER Ziel-IP-Adresse:Ziel-Port
       192.168.1.42:5000 -------------------------> 192.168.1.1:80

CLIENT Ziel-IP-Adresse:Ziel-Port             SERVER Quell-IP-Adresse:Quell-Port
       192.168.1.42:5000 <------------------------- 192.168.1.1:80

Wichtige TCP- und UDP-Ports sind die folgenden.

Port Dienst Erläuterung Netzwerkprotokolle
20 ftp-data Dateiübertragung (Default data) TCP
21 ftp Dateiübertragung (Control), der Standardport TCP
22 ssh Telnet Secure Shell (SSH) TCP
23 telnet Telnet TCP
25 smtp Mailversand mit SMTP TCP
53 domain Namensauflösung (DNS) TCP, UDP
68 Dynamische IP-Adresszuordnung (DHCP) TCP, UDP
79 finger Finger TCP
80 www-http Browsen mit HTTP TCP
110 Mails abrufen mit POP3 TCP
123 ntp Zeitdienst NTP TCP, UDP
143 imap2 Mails abrufen mit IMAP
443 Verschlüsselt browsen mit HTTPS TCP
995 Verschlüsselt Mails abrufen mit POP3S TCP

Die Datei "/etc/services" enthält eine Liste bekannter Ports samt der Dienstnamen sowie einer kurzen Beschreibung. Die Zuordnung von Diensten zu Ports ist jedoch unverbindlich; praktisch alle Dienste erlauben die freie Wahl, auf welchem Port sie lauschen sollen. Gerade für sicherheitsrelevante Programme werden häufig Portnummern abseits des Standards benutzt, um sie einer schnellen Entdeckung (etwa durch Portscanner) zu entziehen.

Ein Port besitzt nur die Zustände offen oder geschlossen - entweder lauscht ein Programm darauf oder nicht. In jedem Fall darf ein anfragender Rechner bei Kontaktversuchen eine Antwort erwarten:

  • Wartet ein Programm auf eine neue Verbindung, so erhält der anfragende Rechner ein Antwortpaket mit gesetzten SYN-ACK-Flags.
  • Ist der Port nicht belegt, kommt stattdessen ein Paket mit RST-ACK-Flags zurück.

Falls keine Antwort erfolgt, kann das zwei Ursachen haben:

  • Das Paket ist auf dem Weg verloren gegangen.
  • Eine Firewall hat das Paket verworfen.

Das ist eines der Hauptprobleme beim Portscanning: Es lässt sich bei einzelnen Paketen nicht mit Bestimmtheit sagen, ob der Port gefiltert ist (also eine Firewall das Paket verwirft), oder ob das Paket nur verlorengegangen ist.

Sicherheit

Um mit einer Anwendung zu kommunizieren, greift ein Client auf den entsprechenden Port eines auf dem Server laufenden Netzwerkdiensts zu. Von aussen erreichbare Netzwerkdienste stellen jedoch immer ein Sicherheitsrisiko dar, als mögliche Angriffspunkte dienen Angreifern eine fehlerhafte Konfiguration oder Sicherheitslücken im Programm.

Mit einer Firewall lässt sich der Zugriff von aussen abschotten.

Die Ports müssen ohnehin nicht dauerhaft offenstehen: das Programm Knock erlaubt es, bestimmte Ports gewissermassen auf Zuruf zu öffnen und wieder zu schliessen.

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
Wikipedia ger Port (Protokoll)wbm Enzyklopädischer Artikel