Transmission Control Protocol/Port
- Portnummern sind 16-Bit-Zahlen und reichen von 0 bis 65535.
- Ports von 0 bis 1023 sind reserviert
- Vergeben von Internet Assigned Numbers Authority (IANA)
- z.B. ist Port 80 für Hypertext Transfer Protocol (HTTP) reserviert.
- Das Benutzen der vordefinierten Ports ist nicht bindend.
- Jeder Administrator kann bspw. einen FTP-Server (normalerweise Port 21) auch auf einem beliebigen Port laufen lassen.
- Mehrfaches listen auf demselben Port ist nicht möglich.
Identifizieren von Anwendungen
- Ports von 0 bis 65535 gibt es unabhängig voneinander bei TCP und UDP
- Sie stellen die Endpunkte einer Kommunikations-beziehung zwischen zwei Rechnern dar
- Die sog. „well-known-ports“ von 0..1023 sind standardisiert z.B.:
- TCP-Port 80 für http
- UDP+TCP-Port 53 für DNS
- UDP-Port 123 für NTP
- Die well-known-ports sind für Systemdienste/Daemons reserviert und dürfen nur mit besonderen Rechten (root) genutzt werden
TCP-Multiplexmechanismus
- Da die Kombination aus IP-Adresse, Quell- und Zielport eindeutig ist, können auch Datenströme gleichen Typs eindeutig den zuständigen Prozessen zugeordnet werden
Zuweisung von Portnummern
- Passive Seite
- Server bindet sich an einen bestimmten Port (bind())
- Aktive Seite
- Client sendet Anfrage oder erstellt eine Verbindung zum Port des Servers (connect()).
- Portnummern können Anwendungsdiensten statisch zugeordnet sein: Eintrag in einer Datenbank, die den durch Server erbrachten Diensten bestimmte Ports zuordnet
- /etc/services (UNIX)
- %SYSTEMROOT%\system32\drivers\etc\services (Windows)
- Dynamische Zuordnung via Verzeichnisdienst, Nameserver (lokal oder verteilt) möglich.
Verwaltung der well-known-ports
- Internet Assigned Numbers Authority (IANA)
- Zuständig für Vergabe von Konstanten in TCP/ IP- Protokollen (port numbers, protocol numbers, ...)
- Bereich 0.. 1023: Für globale "well known" ports, kontrolliert von der IANA
- Bereich 1024 .. 65535: Frei für dynamische Allozierung durch Prozesse oder für statische Allozierung mit lokaler Bedeutung
- Registrierung durch IANA ist optional
- Aktuelle globale/statische Zuordnungen: ftp:// ftp.isi.edu / in-notes / iana / assignments
Well-known port numbers
%SYSTENROOT%\system32\drivers\etc\services
# Copyright (c) 1993-1999 Microsoft Corp. # Diese Datei enthält die Portnummern für bekannte Dienste gemäß IANA. # Format: # <Dienstname> <Portnummer>/<Protokoll> [Alias...] [#<Kommentar>] ftp-data 20/tcp #FTP, data ftp 21/tcp #FTP. control telnet 23/tcp smtp 25/tcp mail #Simple Mail Transfer Protocol time 37/tcp timserver time 37/udp timserver domain 53/tcp #Domain Name Server domain 53/udp #Domain Name Server tftp 69/udp #Trivial File Transfer http 80/tcp www www-http #World Wide Web pop3 110/tcp #Post Office Protocol - Version 3 nntp 119/tcp usenet #Network News Transfer Protocol ntp 123/udp #Network Time Protocol netbios-ns 137/tcp nbname #NETBIOS Name Service netbios-ns 137/udp nbname #NETBIOS Name Service netbios-dgm 138/udp nbdatagram #NETBIOS Datagram Service netbios-ssn 139/tcp nbsession #NETBIOS Session Service imap 143/tcp imap4 #Internet Message Access Protocol snmp 161/udp #SNMP irc 194/tcp #Internet Relay Chat Protocol ipx 213/udp #IPX over IP https 443/tcp MCom https 443/udp MCom [...]
Zustand offen
- Offen" bedeutet, dass eine Anwendung oder ein Dienst bereit ist TCP-Verbindungen oder UDP-Pakete auf diesem Port anzunehmen.
- Um Kommunikationsverbindungen betreiben zu können, bedarf es offener Ports.
- Anzahl offener Ports begrenzen, um die Angriffsfläche so klein wie möglich zu halten.
- Offene Ports werden zusätzlich geschützt oder Verbindungsmöglichkeiten eingeschränkt.
Zustand geschlossen
- "Geschlossen" bedeutet, dass keine Anwendung und kein Dienst an diesem Port auf eingehende Datenpakete und Verbindungsversuche lauscht bzw. hört.
- Auf ihm sind keine Kommunikationsverbindungen möglich.
- Ein geschlossener Port ist nur so lange geschlossen, wie eine Anwendung auf diesen Port hört und Verbindungen und Pakete annimmt.
- So verhindert man z.B. die Verbindungsversuche durch Port-Scans.
- Ein Port-Scan soll nur den Zustand eines Ports ermitteln, aber keine echte Verbindung aufbauen.
- Dann kann für diesen Port weder der Status "offen" noch "geschlossen" gelten.
Zustand gefiltert bzw. blockiert
- Dafür gibt es den Zustand "gefiltert" oder "blockiert".
- Um offene, aber auch geschlossene Ports zu schützen, setzen Systemadministratoren einen Portfilter (Firewall) ein.
- Weil er die dahinterliegende Anwendung nicht kennt, kann er nur Testpakete an einen Port schicken.
- Der Filter verhindert, dass diese Testpakete durchkommen.
- In der Regel werden diese Pakete verworfen.
- Gefiltert bedeutet, dass eine Firewall, ein Filter oder ein anderes Netzwerkhindernis den Port blockiert.