So prüfen Sie offene Ports unter Ubuntu: Wichtige Befehle und Sicherheitstipps

1. Einführung

In der Netzwerkverwaltung und beim Serverbetrieb ist das genaue Verständnis des Port‑Status essenziell. Besonders unter Ubuntu hilft das Prüfen, welche Ports offen sind und welche Prozesse sie nutzen, die Sicherheit zu stärken und die Fehlersuche zu beschleunigen.

Dieser Artikel erklärt die grundlegenden Befehle und Werkzeuge, die zum Prüfen von Ports unter Ubuntu verwendet werden. Er bietet praktische und leicht verständliche Schritte für Einsteiger und Fortgeschrittene – lesen Sie also unbedingt bis zum Ende.

2. Was ist ein Port?

2.1 Grundkonzept von Ports

Ein Port ist ein virtuelles Kommunikationsendpunkt, den Computer und Netzwerkgeräte zum Senden und Empfangen von Daten nutzen. Insbesondere wenn mehrere Anwendungen gleichzeitig über dieselbe IP‑Adresse kommunizieren, identifizieren und leiten Ports die Daten an die richtige Anwendung.

Beispielsweise verwendet ein Web‑Server Port 80 für HTTP‑Verkehr. Wenn derselbe Server SSH‑Zugriff erlaubt, nutzt er Port 22. Da Dienste durch Port‑Nummern unterschieden werden, ist das Prüfen des Port‑Status in der Netzwerkverwaltung entscheidend.

2.2 Arten und Rollen von Ports

Ports werden in drei Hauptgruppen eingeteilt:

  1. Bekannte Ports (0–1023)
  • Global standardisierte Port‑Nummern, die häufig genutzten Diensten zugewiesen sind. wp:list /wp:list

    • Beispiele:
    • HTTP: 80
    • HTTPS: 443
    • SSH: 22
  1. Registrierte Ports (1024–49151)
  • Ports, die von spezifischen Anwendungen oder Unternehmen verwendet werden. wp:list /wp:list

    • Beispiele:
    • MySQL: 3306
    • PostgreSQL: 5432
  1. Dynamische Ports (49152–65535)
  • Ports, die temporär von Anwendungen genutzt werden, meist in clientseitiger Kommunikation.

Das Verständnis dieser Klassifizierung erleichtert die Zuordnung, wofür jede Port‑Nummer verwendet wird.

3. Wie man Ports unter Ubuntu überprüft

Ubuntu stellt mehrere Werkzeuge zur Verfügung, um den Port‑Status zu prüfen. Dieser Abschnitt erklärt vier besonders nützliche Befehle.

3.1 Verwendung des ss‑Befehls

Der ss‑Befehl ist ein leistungsstarkes Netzwerk‑Management‑Tool für Linux‑Systeme. Er arbeitet schnell und liefert detaillierte Verbindungsinformationen.

Grundbefehl:

sudo ss -ltn

Optionen im Detail:

  • -l : Zeigt nur Ports im LISTEN‑Zustand an.
  • -t : Zeigt nur das TCP‑Protokoll an.
  • -n : Zeigt Adressen und Portnummern in numerischer Form an.

Beispielausgabe:

State       Recv-Q Send-Q      Local Address:Port        Peer Address:Port  
LISTEN      0      128              0.0.0.0:22               0.0.0.0:*

3.2 Verwendung des netstat‑Befehls

Der netstat‑Befehl wird seit vielen Jahren als Netzwerk‑Management‑Tool eingesetzt. Obwohl er nach und nach durch ss ersetzt wird, ist er auf vielen Systemen weiterhin verfügbar.

Grundbefehl:

sudo netstat -ltn

Beispielausgabe:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN

3.3 Verwendung des lsof‑Befehls

lsof ist nützlich, um Prozesse zu identifizieren, die bestimmte Ports verwenden.

Einen konkreten Port prüfen:

sudo lsof -i :80

Beispielausgabe:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   1234  www    4u   IPv4  12345 0t0      TCP *:http (LISTEN)

3.4 Verwendung des nmap‑Befehls

nmap ist ein Netzwerk‑Scanning‑Tool, das häufig für Sicherheitsdiagnosen eingesetzt wird.

Lokalen Host scannen:

sudo nmap localhost

Beispielausgabe:

Starting Nmap 7.80 ( https://nmap.org ) at 2024-12-21 18:00 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http

Wichtige Punkte:

  • Offene Ports und die zugehörigen Dienste werden aufgelistet.
  • Es ist möglich, externe Server zu scannen, jedoch ist dafür eine entsprechende Berechtigung erforderlich.

4. Firewall‑Einstellungen prüfen

Auf Ubuntu werden Firewalls häufig eingesetzt, um die Sicherheit zu erhöhen. ufw (Uncomplicated Firewall) ist dabei ein besonders einfaches, aber leistungsstarkes Verwaltungswerkzeug, das weit verbreitet für diesen Zweck genutzt wird. Dieser Abschnitt erklärt, wie man den Status von Ports prüft und Konfigurationen mit ufw ändert.

4.1 ufw-Status prüfen

Befehl zum Prüfen des Firewall-Status:

sudo ufw status verbose

Beispielausgabe:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere

Erklärung:

  • Status: active — zeigt an, dass die Firewall aktiviert ist.
  • Logging: on — Protokollierung ist aktiviert und Firewall‑Aktivitäten werden aufgezeichnet.
  • Default: deny (incoming), allow (outgoing) — eingehende Verbindungen werden standardmäßig abgelehnt, während ausgehende Verbindungen erlaubt sind.
  • ALLOW — zeigt Ports oder Dienste, die ausdrücklich erlaubt sind (z. B. SSH und HTTP).

Tipp:
Wenn die Firewall deaktiviert ist (Status: inactive), aktivieren Sie sie mit dem folgenden Befehl:

sudo ufw enable

4.2 Ports erlauben oder blockieren

Befehl, um einen Port zu erlauben:

sudo ufw allow 22/tcp

Erklärung:

  • Erlaubt TCP‑Verbindungen auf Port 22 (SSH).

Befehl, um einen Port zu blockieren:

sudo ufw deny 80/tcp

Erklärung:

  • Blockiert den Zugriff auf Port 80 (HTTP).

Beispiel: Zugriff nur von einer bestimmten IP‑Adresse erlauben

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Erklärung:

  • Erlaubt SSH‑Verbindungen nur von der IP‑Adresse 192.168.1.100.

4.3 Einstellungen zurücksetzen und überprüfen

Um die Firewall‑Konfiguration zurückzusetzen und von vorne zu beginnen, führen Sie den folgenden Befehl aus:

sudo ufw reset

Damit werden alle Regeln gelöscht und die Firewall in ihren Standardzustand zurückversetzt. Wenn Sie die Einstellungen zurücksetzen, sollten Sie die notwendigen Regeln überprüfen und erneut anwenden.

5. Praktisches Beispiel: Status eines bestimmten Ports prüfen

Dieser Abschnitt liefert ein praktisches Beispiel mit SSH (Port 22), um zu zeigen, wie man den Port‑Status überprüft.

5.1 Port‑Status prüfen

Beispielbefehl:

sudo ss -ltn | grep ':22'

Beispielausgabe:

LISTEN      0      128        0.0.0.0:22            0.0.0.0:*

Wichtige Punkte:

  • Wenn LISTEN in der Ausgabe erscheint, ist der Port offen und wartet auf Verbindungen.
  • 0.0.0.0 zeigt an, dass Verbindungen von allen IP‑Adressen akzeptiert werden.

5.2 Laufenden Prozess prüfen

Beispielbefehl:

sudo lsof -i :22

Beispielausgabe:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      1234  root   3u   IPv4  56789 0t0      TCP *:ssh (LISTEN)

Wichtige Punkte:

  • sshd ist der Daemon‑Prozess, der SSH‑Verbindungen verwaltet.
  • Sie können den Prozess mit seiner Prozess‑ID (PID) stoppen oder neu starten.

Beispiel zum Stoppen eines Prozesses:

sudo kill 1234

5.3 Fehlersuchbeispiel

Problem: Was zu tun ist, wenn ein Port geschlossen oder nicht erreichbar ist.

Schritte:

  1. Firewall‑Einstellungen prüfen.
    sudo ufw status verbose
    
  1. Wenn der Port blockiert ist, erlauben Sie ihn.
    sudo ufw allow 22/tcp
    
  1. Dienststatus prüfen und bei Bedarf neu starten.
    sudo systemctl restart ssh
    

6. Portverwaltung und Sicherheit

Portverwaltung ist eng mit der Netzwerksicherheit verbunden. Dieser Abschnitt erklärt zentrale Punkte zum Öffnen und Schließen von Ports sowie zur Aufrechterhaltung sicherer Konfigurationen.

6.1 Unbenutzte Ports schließen

Ports, die nicht verwendet werden, sollten geschlossen werden, um das Risiko unbefugten Zugriffs zu verringern.

Beispiel: Port 80 schließen

sudo ufw deny 80/tcp

6.2 Gegenmaßnahmen gegen Port‑Scanning

Port‑Scanning ist eine Technik, die Angreifer nutzen, um Schwachstellen in einem System zu identifizieren. Die folgenden Methoden helfen, Ihren Server zu schützen:

  1. Firewall‑Regeln verstärken:
    sudo ufw default deny incoming
    
  1. Protokolle überwachen:
    sudo tail -f /var/log/ufw.log
    
  1. Port-Scan-Erkennungstools installieren: Verwenden Sie Tools wie fail2ban, um unbefugte Zugriffsversuche automatisch zu blockieren.

7. Zusammenfassung

Dieser Artikel erklärte spezifische Methoden und Befehle, um Ports unter Ubuntu zu prüfen. Er behandelte außerdem die Firewall‑Verwaltung mit ufw und praktische Sicherheitsmaßnahmen.

7.1 Wichtigste Erkenntnisse

  • Grundlegende Konzepte und Kategorien von Ports: Ports dienen als Kommunikations­eingangspunkte und werden als gut bekannte, registrierte und dynamische Ports klassifiziert.
  • Wie man Ports prüft: Befehle wie ss, netstat, lsof und nmap liefern Einblicke in den Port‑ und Prozessstatus.
  • Firewall‑Verwaltung: Mit ufw können Sie Ports zulassen oder blockieren, um die Systemsicherheit zu erhöhen.
  • Bedeutung von Sicherheit: Das Schließen ungenutzter Ports, das Überwachen von Protokollen und der Einsatz von Sicherheitstools helfen, ein sicheres Netzwerkumfeld zu erhalten.

7.2 Praktische Anwendung

Port‑Verwaltung ist ein grundlegender Aspekt der Netzwerksicherheit. Wenden Sie das in diesem Artikel erworbene Wissen an, um eine sichere und stabile Serverumgebung zu betreiben.

FAQ: Häufig gestellte Fragen zum Prüfen von Ports unter Ubuntu

Q1. Was soll ich tun, wenn ein Port unter Ubuntu nicht geöffnet ist?

A:
Versuchen Sie die folgenden Schritte:

  1. Firewall‑Einstellungen prüfen:
    sudo ufw status verbose
    

Wenn der Port blockiert ist, erlauben Sie ihn mit:

sudo ufw allow [portnumber]/tcp
  1. Überprüfen, ob der Dienst läuft:
    sudo systemctl status [servicename]
    

Beispiel für SSH:
sudo systemctl status ssh

Bei Bedarf neu starten:

sudo systemctl restart [servicename]
  1. Bestätigen, dass der korrekte Port konfiguriert ist: Prüfen Sie die Dienstkonfigurationsdatei, z. B. /etc/ssh/sshd_config für SSH, um die richtige Portnummer zu verifizieren.

Q2. Was ist der Unterschied zwischen ss und netstat?

A:
Beide Werkzeuge werden zum Prüfen von Netzwerkverbindungen verwendet, unterscheiden sich jedoch wie folgt:

  • ss: Das empfohlene Werkzeug für moderne Linux‑Systeme. Schneller und liefert detailliertere Informationen. Beispiel: sudo ss -ltn
  • netstat: Ein älteres Werkzeug, das allmählich veraltet, aber auf älteren Systemen noch weit verbreitet ist. Beispiel: sudo netstat -ltn

Für neuere Systeme wird ss empfohlen.

Q3. Wie kann ich Port‑Scanning erkennen?

A:
Verwenden Sie die folgenden Methoden:

  1. Firewall‑Protokolle prüfen:
    sudo tail -f /var/log/ufw.log
    

Suchen Sie nach verdächtigen IP‑Adressen oder wiederholten Zugriffsversuchen.

  1. IDS/IPS‑Tools installieren:
  • Nutzen Sie Tools wie fail2ban oder Snort, um unbefugte Zugriffsversuche automatisch zu blockieren.
  1. Scannen Sie Ihren eigenen Server mit nmap:
    sudo nmap localhost
    

Identifizieren Sie unnötige offene Ports und schließen Sie diese.

Q4. Wie kann ich prüfen, welcher Prozess einen bestimmten Port verwendet?

A:
Verwenden Sie den Befehl lsof:

sudo lsof -i :[portnumber]

Beispiel für Port 80:

sudo lsof -i :80

Beispielausgabe:

COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache2   1234  www    4u   IPv4  12345 0t0      TCP *:http (LISTEN)

Q5. Wie erlaube ich nur eine bestimmte IP‑Adresse mit ufw?

A:
Verwenden Sie den folgenden Befehl:

sudo ufw allow from [IP address] to any port [portnumber] proto tcp

Beispiel: SSH‑Zugriff von 192.168.1.100 erlauben:

sudo ufw allow from 192.168.1.100 to any port 22 proto tcp

Q6. Wie kann ich die Portnummer ändern?

A:
Bearbeiten Sie die Konfigurationsdatei des jeweiligen Dienstes.
Beispiel für SSH:

  1. Konfigurationsdatei bearbeiten:
    sudo nano /etc/ssh/sshd_config
    
  1. Die Direktive Port finden und eine neue Portnummer festlegen:
    Port 2222
    
  1. Den SSH‑Dienst neu starten:
    sudo systemctl restart ssh
    
  1. Den neuen Port durch die Firewall zulassen:
    sudo ufw allow 2222/tcp
    

Q7. Kann ich mehrere Ports gleichzeitig zulassen?

A:
Ja, Sie können mehrere Ports mit den folgenden Methoden zulassen:

  1. Erlauben eines Portbereichs:
    sudo ufw allow 1000:2000/tcp
    

Erklärung: Erlaubt Ports von 1000 bis 2000.

  1. Erlauben einzelner Ports:
    sudo ufw allow 22/tcp
    sudo ufw allow 80/tcp
    
年収訴求