Offene Ports sind Einfallstore in dein System. Wenn du weißt, welche Ports offen sind, kannst du Sicherheitslücken schließen, Firewalls korrekt konfigurieren und Netzwerkprobleme beheben.
Wichtig: Scanne nur Systeme, die dir gehören oder für die du eine ausdrückliche Genehmigung hast. Das Scannen fremder Systeme ist in vielen Ländern illegal.
Was ist ein offener Port?
Ein Port ist eine Netzwerkadresse, über die Anwendungen Daten empfangen. Wenn ein Dienst auf einem Port lauscht und die Firewall diesen Port durchlässt, gilt er als offen.
Beispiel: Ein Webserver lauscht auf Port 80 (HTTP) und 443 (HTTPS). Sind diese Ports in der Firewall freigegeben, können Browser darauf zugreifen.
Das Problem: Jeder offene Port ist ein potenzieller Angriffsvektor. Öffne nur die Ports, die du tatsächlich brauchst.
Ports scannen mit nmap
nmap ist das Standardwerkzeug für Port-Scans. Es erkennt offene Ports, Dienste und teilweise sogar Betriebssysteme.
Installation
# Debian/Ubuntu
sudo apt install nmap
# Fedora/RHEL
sudo dnf install nmap
# Arch
sudo pacman -S nmap
Alle TCP-Ports scannen
sudo nmap -sT -p- 10.10.8.8
-sT– TCP-Connect-Scan (vollständiger Verbindungsaufbau)-p-– Alle 65535 Ports scannen (ohne diese Option nur die 1000 häufigsten)
Beispielausgabe:
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
UDP-Ports scannen
UDP-Scans dauern länger, da UDP verbindungslos arbeitet:
sudo nmap -sU -p- 10.10.8.8
Schneller Scan der wichtigsten Ports
Für einen schnellen Überblick ohne vollständigen Scan:
sudo nmap -F 10.10.8.8
Ports scannen mit netcat
netcat (Befehl: nc) ist ein einfaches Netzwerkwerkzeug, das auf den meisten Systemen vorinstalliert ist.
Portbereich scannen
nc -z -v 10.10.8.8 20-80
-z– Nur prüfen, keine Daten senden-v– Ausführliche Ausgabe
Die Ausgabe zeigt erfolgreiche und fehlgeschlagene Verbindungen:
nc: connect to 10.10.8.8 port 20 (tcp) failed: Connection refused
nc: connect to 10.10.8.8 port 21 (tcp) failed: Connection refused
Connection to 10.10.8.8 22 port [tcp/ssh] succeeded!
Connection to 10.10.8.8 80 port [tcp/http] succeeded!
Nur offene Ports anzeigen
Filtere die Ausgabe mit grep:
nc -z -v 10.10.8.8 20-80 2>&1 | grep succeeded
Der Teil 2>&1 leitet Fehlermeldungen in die Standardausgabe um, damit grep sie erfassen kann.
UDP-Ports prüfen
nc -z -v -u 10.10.8.8 53
Die Option -u wechselt auf UDP.
Ports prüfen mit Bash
Ohne zusätzliche Tools kannst du das Bash-Pseudo-Gerät /dev/tcp/ nutzen.
Einzelnen Port prüfen
if timeout 5 bash -c '</dev/tcp/kernel.org/443' 2>/dev/null; then
echo "Port 443 ist offen"
else
echo "Port 443 ist geschlossen"
fi
Der timeout-Befehl bricht nach 5 Sekunden ab, falls keine Verbindung zustande kommt.
Portbereich mit Schleife prüfen
for port in {20..80}; do
if timeout 1 bash -c "</dev/tcp/10.10.8.8/$port" 2>/dev/null; then
echo "Port $port ist offen"
fi
done
Diese Methode ist langsamer als nmap, funktioniert aber ohne Installation zusätzlicher Software.
Welches Tool wann?
| Situation | Empfehlung |
|---|---|
| Umfassender Sicherheits-Scan | nmap |
| Schnelle Prüfung einzelner Ports | nc oder Bash |
| Kein Tool installiert | Bash /dev/tcp/ |
| Diensterkennung nötig | nmap -sV |
Zusammenfassung
nmapist das vielseitigste Werkzeug für Port-Scans und liefert detaillierte Informationennetcateignet sich für schnelle Prüfungen ohne viel Aufwand- Bash-Pseudo-Geräte funktionieren ohne zusätzliche Installation
- Scanne nur eigene Systeme oder solche mit Genehmigung