Exkurs: TCP/IP-Ports
TCP/IP (Transmission Control Protocol/Internet Protocol) bezeichnet wichtige Internetprotokolle. Die Identifizierung eines teilnehmenden Hosts geschieht dabei über IP-Adressen.
Es können auf einem Host mehrere Server-Progamme gleichzeitig ausgeführt werden, die alle auf eingehende, auf TCP/IP basierende Anfragen (engl. Requests) lauschen. Z.B. könnte ein FTP-Server (File Transfer Protocol) und ein Webserver (http - Hypertext Transfer Protokoll) unter der gleichen IP-Adresse erreichbar sein.
Damit ein Request auch das richtige Server-Programm auf dem Host erreicht, wird der IP-Adresse ein Port hinzugefügt. Dieser Port "adressiert" dann das jeweilige Server-Programm auf dem Host.

TCP/IP-Pakete mit jeweiligem Zielport vom Client zum Server
Standardisierung
Der Port wird mit 2 Byte = 16 bit kodiert. Es ergeben sich damit 216 = 65 536 mögliche Ports. Um die Netzkonfiguration zu vereinfachen standardisierte die IANA (Internet Assigned Numbers Authority) die Portnummer, um die Netzkonfigurationen zu vereinfachen. Es werden 3 Bereiche unterschieden:
Standardisierte Ports (well known ports)
Ports 0 bis 1023
Diese Ports sind reserviert bzw. für bestimmte Dienste fest vergeben. Beispiele:
Port
|
Beschreibung |
|---|---|
| 21 | FTP |
| 22 | SSH Remote Login Protocol |
| 23 | Telnet |
| 25 | Simple Mail Transfer Protocol (SMTP) |
| 53 | Domain Name System (DNS) |
| 80 | HTTP |
| 443 | HTTPS |
Beispiel PuTTY Configuration
Mit PuTTY lassen sich u.a. Secure Shell - Verbindungen zu Remote Hosts aufbauen. Dazu wird der standardisierte Port 22 eingetragen:

Beispiel: PuTTY-Konfiguration
Registrierte Ports
Ports 1024 bis 49151
Software-Hersteller können bei der IETF (Internet Engineering Task Force) für Produkt aus diesem Bereich Ports registrieren lassen. Beispiele:
Port
|
Beschreibung |
|---|---|
| 1433 | Microsoft SQL-Server |
| 3306 | MySQL/Maria DB |
| 25565 | Minecraft |
Dynamische Ports
Ports 49152 bis 65535
Die Ports aus diesem Bereich werden vom Betriebssystem zufällig ausgewählt und dynamisch an Clientprogramme vergeben. Der Client fügt diesen sogenannten Quellport (Absenderport) den TCP-Paketen seiner Anfrage hinzu. Nur so kann der Server mit seiner Antwort auch den richtigen Client auf dem Client-Host erreichen.

Der Quellport wird zufällig aus dem dynamischen Portbereich ausgewählt
Beispielsweise kann ein Browser mehrere Webseiten gleichzeitig aufrufen und die Antworten müssen dem richtigen Browsertab zugeordnet werden.
Netstat in der Windows Konsole
Es kann im Fehlerfall vorkommen, dass zwei Clients den gleichen Quellport benutzen. Die Antwort vom Server kann dann nicht mehr eindeutig einem Client zugeordnet werden.
Zur Fehlersuche kann das Windows-Programm netstat mit Administratorrechten in der Konsole ausgeführt werden:
C:\Users\838235>netstat -an
Active Connections
Proto Local Address Foreign Address State
...
TCP 192.168.178.21:53493 52.13.148.70:443 ESTABLISHED
TCP 192.168.178.21:56055 51.103.5.186:443 ESTABLISHED
TCP 192.168.178.21:56736 51.144.227.73:443 TIME_WAIT
TCP 192.168.178.21:56744 40.114.177.156:443 LISTENING
...
Man sieht auf dem Host mit der IP-Adresse 192.168.178.21 wurden u.a. 4 Verbindungen mit dem Zielport 443 geöffnet. Port 443 ist der Standardport für https (Hypertext Transfer Protocol Secure). Der Grund hierfür sind 4 geöffnete Browsertabs, mit denen jeweils 4 unterschiedliche Webseiten aufgerufen werden (unterschiedliche Ziel-IPs). Man sieht, dass jeder Browsertab als eigenständiger Client fungiert und daher mit einer eigenen Quelladresse aus dem dynamisch vergebenen Portbereich auftritt. Nur so kann eine Antwort vom jeweiligen Server auch dem richtigen Browsertab zugeordnet werden.
Portweiterleitung (engl. Port Forwarding)
Achtung: Bevor Port Forwarding eingerichtet wird, müssen alle Kennwörter entsprechend komplex sein, so dass ein einfachen Port Scan mit Anmeldeversuchen unter Verwendung von Standardkennwörtern fehlschlägt. So sollte auch die Anmeldung mit dem Benutzer root, Administrator usw. deaktiviert werden, so dass zusätzlich der Benutzername erraten werden muss.
Ein Router, der das interne Netz mit dem Internet verbindet oder ein Proxy leitet Client-Anfragen (Requests) aus dem internen Netz (LAN = Local Area Network) in das Internet (WAN = Wide Area Network) weiter und merkt sich für die Server-Antwort (Response) die entsprechende interne IP-Adresse, um diese zum anfragenden Client weiterzuleiten. Der Quellport des Absenders steht auf dem Router nur für die Antwort temporär offen.
Umgekehrt lässt ein Router ohne Portweiterleitungen keine Requests "ungefragt" aus dem WAN in das LAN zu. Das ginge zum einen zu Lasten der Sicherheit, denn Angriffe aus dem Internet böten mehr Angriffsfläche. Zum Anderen wüsste der Router aber auch gar nicht, an welche lokale Internetadresse eine Anfrage von außen weitergeleitet werden müsste.
Wenn im LAN aber ein Server installiert wird, der von außen erreichbar sein soll, dann muss eine sogenannte Portweiterleitung (engl. Port Forwarding) auf dem Router konfiguriert werden:
Beispiel: Portweiterleitung (-freigabe) bei der Fritzbox
Portfreigaben: 1. Gerät hinzufügen
Hier erfolgt die Auswahl über den Gerätenamen, der mit einer internen statischen IP-Adresse assoziiert sein muss.
(s. Exkurs: Statische IP-Adressen)
Portfreigaben: 2. Gerät auswählen
Nach der Auswahl muss die Portweiterleitung konfiguriert werden. In diesem Beispiel wird ein SSH-Zugriff von außen erlaubt. Dafür kann keine vordefinierte Anwendung ausgewählt werden. Neben der Bezeichnung muss der eingehende und ausgehende Port, sowie das Protokoll festgelegt werden. Eine kurze Recherche ergibt, dass SSH-Requests standardmäßig auf dem Port 22 mittels TCP erfolgen. Dabei genügtz der Internetzugriff über IPv4:
Portfreigaben: 3. Port konfigurieren
Portfreigaben: 4. Portfreigabe speichern
Portfreigaben: 5. Portweiterleitung freigeben
Der Zugriff von außen ist nun möglich. Hierfür kann man die öffentliche IP-Adresse des Routers ablesen, wenn man keinen dynamischen DNS-Namen konfiguriert hat:
Öffentliche IP-Adresse des Routers
Putty-Konfiguration
Der Zugriff ist nun mittels SSH möglich und nach dem akzeptieren des Schlüssels öffnet sich die Secure SHell:

Zugriff mittels SSH und PuTTY
Wegen der IPv4-Adressknappheit wird dem normalen DSL-Anschluss i.d.R. nachts eine neue IP-Adresse zugewiesen. Deshalb müsste man jeden Tag die aktuelle IP-Adresse neu ermitteln. Um das zu vermeiden, sollte ein DynDNS-Eintrag vorgenommen werden.




