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?

SituationEmpfehlung
Umfassender Sicherheits-Scannmap
Schnelle Prüfung einzelner Portsnc oder Bash
Kein Tool installiertBash /dev/tcp/
Diensterkennung nötignmap -sV

Zusammenfassung

  • nmap ist das vielseitigste Werkzeug für Port-Scans und liefert detaillierte Informationen
  • netcat eignet 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