Ports sind wie Türen auf einem Server - jeder Dienst lauscht auf einem bestimmten Port. Diese Übersicht zeigt die wichtigsten Ports für Server-Administratoren.

Was sind Ports?

Ein Port ist eine Nummer von 0-65535, die einen Dienst auf einem Server identifiziert. Die Kombination aus IP-Adresse und Port bildet einen "Socket":

192.168.1.100:443 = IP + HTTPS-Port

Port-Bereiche

| Bereich | Nummern | Bedeutung | |---------|---------|-----------| | Well-Known | 0-1023 | Standard-Dienste (benötigen Root) | | Registered | 1024-49151 | Registrierte Anwendungen | | Dynamic | 49152-65535 | Temporäre/Private Ports |

Webserver

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 80 | TCP | HTTP | Unverschlüsselter Webverkehr | | 443 | TCP | HTTPS | Verschlüsselter Webverkehr | | 8080 | TCP | HTTP Alt | Alternativer HTTP-Port | | 8443 | TCP | HTTPS Alt | Alternativer HTTPS-Port |

E-Mail

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 25 | TCP | SMTP | E-Mail-Versand (Server zu Server) | | 465 | TCP | SMTPS | SMTP über SSL (veraltet, aber genutzt) | | 587 | TCP | Submission | E-Mail-Einlieferung (Client zu Server) | | 110 | TCP | POP3 | E-Mail-Abruf (unverschlüsselt) | | 995 | TCP | POP3S | POP3 über SSL | | 143 | TCP | IMAP | E-Mail-Abruf (unverschlüsselt) | | 993 | TCP | IMAPS | IMAP über SSL |

Fernzugriff

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 22 | TCP | SSH | Secure Shell (Fernzugriff) | | 23 | TCP | Telnet | Unverschlüsselter Fernzugriff (unsicher!) | | 3389 | TCP | RDP | Windows Remote Desktop | | 5900 | TCP | VNC | Virtual Network Computing |

Datenbanken

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 3306 | TCP | MySQL/MariaDB | MySQL-Datenbank | | 5432 | TCP | PostgreSQL | PostgreSQL-Datenbank | | 1433 | TCP | MSSQL | Microsoft SQL Server | | 27017 | TCP | MongoDB | MongoDB | | 6379 | TCP | Redis | Redis Key-Value Store | | 11211 | TCP/UDP | Memcached | Memcached Cache |

Dateitransfer

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 20 | TCP | FTP-Data | FTP Datentransfer | | 21 | TCP | FTP | FTP Steuerung | | 22 | TCP | SFTP | SSH File Transfer | | 69 | UDP | TFTP | Trivial FTP | | 873 | TCP | rsync | rsync Daemon | | 445 | TCP | SMB | Windows Dateifreigabe |

DNS

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 53 | TCP/UDP | DNS | Domain Name System | | 853 | TCP | DoT | DNS over TLS | | 443 | TCP | DoH | DNS over HTTPS |

Weitere wichtige Ports

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 123 | UDP | NTP | Zeitsynchronisation | | 161 | UDP | SNMP | Netzwerk-Monitoring | | 389 | TCP | LDAP | Verzeichnisdienst | | 636 | TCP | LDAPS | LDAP über SSL | | 1194 | UDP | OpenVPN | VPN | | 51820 | UDP | WireGuard | Modernes VPN | | 9090 | TCP | Cockpit | Linux Web-Admin | | 10000 | TCP | Webmin | Server-Administration |

Container & Orchestrierung

| Port | Protokoll | Dienst | Beschreibung | |------|-----------|--------|--------------| | 2375 | TCP | Docker | Docker API (unverschlüsselt) | | 2376 | TCP | Docker | Docker API (TLS) | | 6443 | TCP | Kubernetes | Kubernetes API | | 9000 | TCP | Portainer | Docker-Verwaltung |

Firewall-Konfiguration

Nur benötigte Ports öffnen

# UFW Beispiel
ufw default deny incoming
ufw allow ssh
ufw allow http
ufw allow https
ufw enable

iptables Beispiel

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Ports prüfen

Offene Ports anzeigen

# Alle lauschenden Ports
ss -tulpn

# Nur TCP
ss -tlpn

# Mit netstat (älter)
netstat -tulpn

Port von außen testen

# Mit nc (netcat)
nc -zv server.example.com 443

# Mit telnet
telnet server.example.com 443

# Mit nmap
nmap -p 22,80,443 server.example.com

Welcher Dienst nutzt einen Port?

ss -tlpn | grep :80
# oder
lsof -i :80

Sicherheitshinweise

Niemals öffnen (wenn nicht nötig)

  • Port 23 (Telnet) - Immer SSH verwenden
  • Port 3306 (MySQL) - Nur lokal oder über SSH-Tunnel
  • Port 6379 (Redis) - Standardmäßig ohne Auth

Ports ändern (Security through Obscurity)

SSH auf anderem Port reduziert automatisierte Angriffe:

# /etc/ssh/sshd_config
Port 2222

Hinweis: Kein echter Schutz, aber reduziert Lärm in den Logs.

Interne Dienste

Datenbanken und Caches sollten nur auf localhost lauschen:

bind-address = 127.0.0.1

TCP vs. UDP

| Aspekt | TCP | UDP | |--------|-----|-----| | Verbindung | Verbindungsorientiert | Verbindungslos | | Zuverlässigkeit | Garantierte Zustellung | Best Effort | | Reihenfolge | Garantiert | Nicht garantiert | | Geschwindigkeit | Langsamer | Schneller | | Typische Dienste | HTTP, SSH, E-Mail | DNS, VPN, Streaming |

Fazit

Die wichtigsten Ports für Webserver: 22 (SSH), 80 (HTTP), 443 (HTTPS). Für E-Mail: 25, 587, 993. Datenbanken sollten nur lokal erreichbar sein. Öffnen Sie in der Firewall nur die Ports, die Sie wirklich brauchen.