6.4    Nutzung von Services mittels Ports und Sockets

Mittels der IP-Adresse allein können die Anwendungen Ihrer Rechner nicht miteinander kommunizieren. Die IP-Adressen sind nur für die Adressierung zwischen den Rechnern zuständig. Eine Netzwerkanwendung selbst kann nicht mit einer IP-Adresse versehen werden. Die sendenden und empfangenden Anwendungen benötigen für ihre Kommunikation im Netzwerkverkehr aber eine Art Kanal, was mit den Ports umgesetzt wird.

Die von Ihnen bemühten Netzwerkdienste benötigen ebenfalls einen Antwort-Port, einen Rückkanal. Ihre Client-Anwendungen benutzen dafür nicht die Standard-Port-Nummern, sondern verwenden Nummern aus dem dynamischen Bereich (49152–65535, siehe Tabelle 6.3). Diese Port-Nummer übergibt Ihre Client-Anwendung schon beim Verbindungsaufbau dem betreffenden Netzwerkservice (Abbildung 6.6).

Port-Nummern für Anfrage und Antwort

Abbildung 6.6     Port-Nummern für Anfrage und Antwort

Port-Nummern erweitern nicht nur die IP-Adressen um ein weiteres Merkmal, sondern ermöglichen darüber hinaus

Eine vereinfachte Darstellung dieser Mechanismen finden Sie in Abbildung 6.7. Wie Sie sehen, greifen die PCs 192.168.1.125 bis 192.168.1.127 gleichzeitig auf den Webserver 192.168.1.5 zu. Dabei haben zwei dieser PCs dem Server sogar dieselbe Port-Nummer für die Rückantwort übermittelt. Das ist kein Problem, weil die Port-Nummer ja nur ein erweiterter Bestandteil der Adressierung ist.

Auf dem PC 192.168.1.127 arbeiten gleichzeitig ein Webbrowser, ein SSH-Client und ein E‐Mail-Programm. Dieser PC hat gleichzeitig zu verschiedenen Servern Verbindung, im Fall des E-Mail-Verkehrs sogar mehrere Verbindungen zu dem gleichen Server.

IP-Adressen und Port-Nummern, Zugriff auf Netzwerkdienste

Abbildung 6.7     IP-Adressen und Port-Nummern, Zugriff auf Netzwerkdienste

6.4.1    Sockets und deren Schreibweise

Bei Verbindungen mittels TCP bildet die IP-Adresse zusammen mit einem Port einen Socket. IPv6-Sockets können Sie mit unterschiedlichen Schreibweisen darstellen.

Sockets und deren Schreibweisen

IPv4, Telnet: 192.168.1.125:23

IPv6, Telnet: [fd91:e4a5:5e03::dd05]:23

oder

fd91:e4a5:5e03::dd05:23

oder

fd91:e4a5:5e03::dd05.23

oder

fd91:e4a5:5e03::dd05#23

(RFCs 5952, Nr. 6 und 3986, 6874, 7320, 8820)

6.4.2    Übersicht über die Port-Nummern

Die Ports werden in drei Gruppen unterteilt:

Die komplette Liste finden Sie unter www.iana.org/assignments/port-numbers.

Manche Ports sind mehrfach belegt, was Konflikte hervorrufen kann. Auch Trojaner und andere Schadsoftware benötigen einen Port für die Kommunikation mit der Außenwelt.

In Tabelle 6.3 finden Sie einige häufig benötigte Port-Nummern aufgelistet. Ihre Rechner verfügen ebenfalls über eine derartige Aufstellung:

Nr.

Protokoll

Service

Zweck

20

UDP/TCP

FTP-Daten

Datenübertragung per File Transmission Protocol (FTP)

21

UDP/TCP

FTP-Sitzungssteuerung

Steuerung der FTP-Datenübertragung

22

UDP/TCP

SSH
SFTP

Secure-Shell-Fernsitzung (SSH) und Secure File Transport Protocol, SFTP

23

UDP/TCP

TELNET

Telnet-Fernsitzung

25

UDP/TCP

SMTP

Simple Mail Transfer Protocol, Versenden von E-Mails (Annahme durch den Server)

53

UDP/TCP

DNS

Domain-Nameserver

69

UDP/TCP

TFTP

Trivial File Transfer Protocol

80

UDP/TCP

WWW

HTTP-Webserver

110

UDP/TCP

POP3

Post Office Protocol V.3, Auslieferung von E-Mails

119

UDP/TCP

NNTP

Network News Transfer Protocol, Übertragen von News-Group-Nachrichten

137

UDP/TCP

NETBIOS-NS

NetBIOS-Name-Service

138

UDP/TCP

NETBIOS-DGM

NetBIOS-Datagramm-Service

139

UCP/TCP

NETBIOS-SSN

NetBIOS-Session-Service

143

UDP/TCP

IMAP

Internet Message Access Protocol (IMAP), Zugriff auf E-Mails

161

UDP/TCP

SNMP

Simple Network Management Protocol, Geräteüberwachung im Netzwerk

162

UDP/TCP

SNMPTRAP

Übermittlung der SMNP-Traps

179

UDP/TCP

BGP

Border Gateway Protocol, Routing-Protokoll zwischen autonomen Systemen

194

UDP/TCP

IRC

Internet Relay Chat Protocol, Chat-Server

220

UDP/TCP

IMAP V3

IMAP Version 3, E-Mail-Zugriff

396

UDP/TCP

NETWARE-IP

Novell-Netware, über IP-Netzwerk

401

UDP/TCP

UPS

Meldungen von unterbrechungsfreien Stromversorgungen

434

UDP/TCP

MOBILE-
IP-AGENT

Mobile-IP-Agent

443

UDP/TCP

HTTPS

Webserver mit verschlüsselter Verbindung

514

UDP

SYSLOG

zentrale Aufzeichnung von Systemereignissen

989

UDP/TCP

FTPS-Daten

FTP über SSL-Verschlüsselung

990

UDP/TCP

FTPS

Steuerung FTP über SSL-Verschlüsselung

992

UDP/TCP

TELNETS

Telnet über SSL-Verschlüsselung

993

UDP/TCP

IMAPS

IMAP V.4 über SSL-Verschlüsselung

994

UDP/TCP

IRCS

IRC über SSL-Verschlüsselung

995

UDP/TCP

POP3S

POP3 über SSL-Verschlüsselung

Tabelle 6.3     Häufig benutzte Ports

Im Normalfall geben Sie beim Benutzen von Standardanwendungen (Webbrowser, E‐Mail-Programm, FTP-Client …) keine Port-Nummer beim Adressaufruf an. Ihre Anwendungen werden stets diese Standard-Port-Nummern benutzen. Aber es gibt genug Situationen, in denen Sie Internet-Services eine von den IANA-Vorgaben abweichende Port-Nummer zuweisen:

6.4.3    Ports und Sicherheit

Ihre Rechner verfügen über offene Ports. Über diese kann Ihr Rechner von außen her auf verschiedene Weise angegriffen werden.

Mit einem Portscanner (z. B. nmap) überprüfen Sie, welche Ports an Ihrem Rechner geöffnet sind:

harald@ZE4:~$ nmap -p 1-65535 192.168.0.34
Starting Nmap 4.62 ( http://nmap.org ) at 2016-06-19 20:30 CEST
Interesting ports on ze4 (192.168.0.34):
Not shown: 65530 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
111/tcp open rpcbind
7741/tcp open unknown
32955/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.
949 seconds

Sie sehen die geöffneten Ports. Damit alle Ports gescannt werden, geben Sie den Bereich mit der Option -p an. Eine genaue Anleitung erhalten Sie mit man nmap, falls Sie unter Linux oder FreeBSD arbeiten.

Sie dürfen mit einem Portscanner nur Ihre eigenen Systeme überprüfen. Eine darüber hinausgehende Nutzung kann strafrechtliche Folgen nach sich ziehen!

Ein Portscanner hat verschiedene Modi. Der TCP-SYN-Scan z. B. sendet ein Paket mit SYN-Flag zur vermeintlichen Verbindungsaufnahme. Sie können damit drei verschiedene Ergebnisse erhalten:

UDP-Portscans arbeiten nicht so zuverlässig. Der Portscanner sendet ein leeres UDP-Paket an die jeweiligen Ports. Sendet der so kontrollierte Rechner ein UDP-Paket zurück, ist der Port offen. Aber auch beim Ausbleiben einer Antwort kann der Port offen oder durch einen Paketfilter geblockt sein. Diese Mehrdeutigkeit führt zu Problemen bei der Auswertung. Geschlossene Ports erkennen Sie an der Port-Unreachable-Meldung (ICMPv4: Typ 3 Code 3, ICMPv6: Typ 1 Code 4). Moderne Betriebssysteme drosseln die Ausgabe von ICMP-Meldungen, sodass der Portscan sehr lange dauern kann.

Auch mit netstat können Sie Ihren Rechner auf offene Ports hin überprüfen. Im Beispiel aus Abbildung 6.8 sehen Sie die Ausgabe unter Linux (bei FreeBSD funktioniert der Befehl genauso).

Ausgabe von »netstat«

Abbildung 6.8     Ausgabe von »netstat«

Für das Ergebnis in Abbildung 6.8 lautet die Eingabe:

netstat -atn.

Hier werden Ports und Adressen numerisch ausgegeben. Sie erkennen übrigens gut die Socket-Schreibweise. Möchten Sie hingegen die Ausgabe mit Rechner- und Port-Namen, geben Sie nur

netstat -at

ein.

Mit der Eingabe von

netstat -tun

listen Sie alle von außen zugreifenden Verbindungen auf.

Möchten Sie die zugehörigen Prozessnummern in Erfahrung bringen, geben Sie unter Windows zusätzlich die Option »o« und bei Linux/FreeBSD »p« ein. Dass kann Ihnen beim Eingrenzen unerwünschter offener Ports behilflich sein. Über das jeweilige Prozessmanagement bekommen Sie mit dieser Prozess-ID weitere Informationen geliefert. Weitere Erläuterungen zu netstat finden Sie in Abschnitt 10.7.2, »Verbindungen mit ›netstat‹ anzeigen«.

Damit Ihr Rechner so wenige offene Ports wie möglich aufweist, können nachstehende Maßnahmen nützlich sein:

Weitere Informationen zum Thema Portscan finden Sie in Abschnitt 6.8.2, »Durchführen von Portscans zum Austesten von Sicherheitsproblemen«.