So öffnen Sie Ports unter Linux auf CODE-DE

Eine Firewall ist eine Software oder Firmware, die eine Reihe von Regeln durchsetzt, welche festlegen, welche Datenpakete ein Netzwerk betreten oder verlassen dürfen. Sie ist für die Verwaltung von Allow- und Deny-Regeln für Ports und Protokolle verantwortlich.

In diesem Artikel erklären wir, wie man Ports auf zwei Linux-Distributionen öffnet:

  • Ubuntu mit UFW

  • CentOS 9 mit firewalld

Unabhängig vom verwendeten Firewall-Paket ist das Endergebnis dasselbe: kontrollierter und sicherer Netzwerkzugriff.

Was wir behandeln

Voraussetzungen

Nr. 1 Konto

Sie benötigen ein CODE-DE-Hosting-Konto mit Zugriff auf die Horizon-Oberfläche: https://cloud.fra1-1.cloudferro.com/auth/login/?next=/.

Nr. 2 Virtuelle Maschinen erstellen

Um die Firewall-Konfiguration zu testen, erstellen Sie eine Ubuntu-VM und eine CentOS-9-VM in Ihrem CODE-DE-Cloud-Projekt. Weisen Sie jeder virtuellen Maschine eine öffentliche IPv4-Adresse zu, damit Sie per SSH eine Verbindung herstellen können.

Die folgenden Artikel können als Referenz dienen:

Nr. 3 Security Group mit SSH-Zugriff

Stellen Sie für beide virtuellen Maschinen sicher, dass der Port 22/tcp in der zugehörigen Security Group erlaubt ist, damit SSH-Verbindungen funktionieren.

Nr. 4 Sudo-Rechte

Sie müssen auf beiden Systemen in der Lage sein, Befehle mit sudo auszuführen.

Ubuntu

Ubuntu enthält standardmäßig den Dienst UFW (Uncomplicated Firewall). Er bietet eine vereinfachte und benutzerfreundliche Oberfläche zur Verwaltung von Firewall-Regeln.

In den meisten Fällen ist UFW bereits auf Ubuntu-Systemen installiert. Falls das Paket fehlt, installieren Sie es mit folgendem Befehl:

sudo apt install ufw

Überprüfen des Dienststatus

Überprüfen Sie den aktuellen Status des UFW-Dienstes:

sudo systemctl status ufw

Firewall aktivieren

Aktivieren Sie UFW, damit Firewall-Regeln aktiv durchgesetzt werden:

sudo ufw enable
Installing UFW on Ubuntu

Arbeiten mit UFW unter Ubuntu beginnen

Ports öffnen

UFW erlaubt das Öffnen von Ports entweder durch Angabe expliziter Portnummern oder durch die Verwendung symbolischer Dienstnamen. Symbolische Namen sind vordefinierte Aliase, die gängige Dienste ihren Standard-Ports und -Protokollen zuordnen und Regeln lesbarer machen.

Öffnen eines bestimmten TCP-Ports

Um eingehenden Verkehr auf einem bestimmten TCP-Port zuzulassen, verwenden Sie folgende Syntax:

sudo ufw allow <port>/tcp

Beispiel (DNS über TCP auf Port 53 erlauben):

sudo ufw allow 53/tcp

Verwendung symbolischer Dienstnamen

UFW enthält eine Liste bekannter Dienstnamen, die gängigen Port- und Protokollkombinationen entsprechen. Bei Verwendung eines Dienstnamens wendet UFW automatisch den richtigen Port und das passende Protokoll an.

Beispiel:

sudo ufw allow https

Dieser Befehl erlaubt HTTPS-Verkehr (TCP-Port 443).

Häufig verwendete symbolische Dienstnamen

Die folgende Tabelle listet einige häufig verwendete symbolische Dienstnamen auf, die von UFW unterstützt werden:

Service name

Port / Protocol

Typical use

ssh

22 / tcp

Sicherer Fernzugriff

http

80 / tcp

Webverkehr (unverschlüsselt)

https

443 / tcp

Sicherer Webverkehr

ftp

21 / tcp

Dateiübertragung

dns

53 / tcp, udp

Namensauflösung

TCP- und UDP-Verkehr erlauben

Wenn ein Dienst sowohl TCP als auch UDP benötigt, können Sie den Port ohne Protokollangabe erlauben.

Beispiel (FTP-Steuerverkehr auf Port 21):

sudo ufw allow 21

Typische Konfigurationsbeispiele

Nachfolgend einige gängige Kombinationen von Firewall-Regeln für typische Server-Setups.

Nur SSH und HTTPS erlauben:

sudo ufw allow ssh
sudo ufw allow https

Webserver mit HTTP und HTTPS erlauben:

sudo ufw allow http
sudo ufw allow https

DNS erlauben und Zugriff auf einen bestimmten Anwendungsport einschränken:

sudo ufw allow dns
sudo ufw allow 1112/tcp
Allowing ports using UFW

Verkehr von einer bestimmten IP-Adresse erlauben

Um eingehenden Verkehr nur von einer bestimmten IPv4-Adresse zuzulassen:

sudo ufw allow from 190.34.21.113

Konfiguration überprüfen

Aktive Firewall-Regeln anzeigen:

sudo ufw status verbose

Die Ausgabe wird als Tabelle mit drei Hauptspalten dargestellt.

UFW status output showing allowed and denied rules

Erläuterung:

To

Zielport und Protokoll

Action

Gibt an, ob der Verkehr erlaubt oder verweigert wird

From

Quelladresse (z. B. Anywhere oder eine bestimmte IP-Adresse)

CentOS 9

CentOS 9 verwendet firewalld, ein fortschrittlicheres Firewall-Management-Tool, das auf Zonen basiert. Zonen definieren Vertrauensstufen für Netzwerkschnittstellen.

firewalld fungiert als Frontend-Controller für iptables und ermöglicht eine persistente Regelverwaltung.

firewalld installieren

Installieren Sie das firewalld-Paket:

sudo dnf install firewalld

Dienst starten und aktivieren

Starten Sie den firewalld-Dienst:

sudo systemctl start firewalld

Aktivieren Sie ihn für den automatischen Start beim Booten:

sudo systemctl enable firewalld

Dienststatus überprüfen

Überprüfen Sie, ob firewalld läuft:

sudo firewall-cmd --state
Installing firewalld on CentOS 9

Arbeiten mit firewalld beginnen

firewalld-Befehle verstehen

Beim Arbeiten mit firewalld werden Sie zwei unterschiedliche Befehlstypen verwenden: systemctl-Befehle und firewall-cmd-Befehle. Dies ist beabsichtigt und kein Widerspruch.

  • firewalld ist der Firewall-Dienst (Daemon), der auf dem System läuft

  • firewall-cmd ist der Kommandozeilen-Client zur Konfiguration dieses Dienstes

Dienstverwaltung vs. Firewall-Konfiguration

Befehle mit systemctl verwalten den firewalld-Dienst selbst. Sie steuern, ob der Firewall-Daemon läuft und ob er automatisch beim Systemstart startet.

Beispiele:

sudo systemctl start firewalld
sudo systemctl enable firewalld

Firewall-Regeln konfigurieren

Befehle mit firewall-cmd interagieren mit dem laufenden firewalld-Daemon. Sie dienen zur Konfiguration von Firewall-Regeln, Zonen, Ports und Diensten.

Beispiel:

sudo firewall-cmd --state

Arbeiten mit Zonen

Die Standardzone ist public. Um sie auf eine andere Zone namens work zu ändern, führen Sie aus:

sudo firewall-cmd --set-default-zone=work

TCP-Port öffnen

Erlauben Sie TCP-Verkehr auf Port 1112 dauerhaft in der public-Zone:

sudo firewall-cmd --zone=public --add-port=1112/tcp --permanent

Änderungen anwenden

Laden Sie firewalld neu, um die Konfiguration zu übernehmen:

sudo firewall-cmd --reload

Aktive Regeln anzeigen

Sie können aktive Ports und Dienste einer Zone mit firewall-cmd anzeigen.

Aktive Zone und ihre Regeln anzeigen:

sudo firewall-cmd --get-active-zones

Alle erlaubten Dienste und Ports in der public-Zone anzeigen:

sudo firewall-cmd --zone=public --list-all

Nur Ports anzeigen:

sudo firewall-cmd --zone=public --list-ports

Nur Dienste anzeigen:

sudo firewall-cmd --zone=public --list-services

Diese Befehle helfen Ihnen, schnell zu überprüfen, welche Ports und Dienste derzeit von firewalld erlaubt sind.

Firewalld list of active rules

SSH-Zugriff von einer bestimmten IP-Adresse erlauben

Um SSH-Zugriff nur von einer bestimmten IPv4-Adresse zu erlauben, verwenden Sie eine Rich Rule:

sudo firewall-cmd \
  --zone=public \
  --add-rich-rule 'rule family="ipv4" source address="192.168.13.44" port port="22" protocol="tcp" accept' \
  --permanent

Laden Sie firewalld neu, um die Regel zu aktivieren:

sudo firewall-cmd --reload

Zusammenfassung

  • UFW ist die Standard-Firewall unter Ubuntu und bietet ein einfaches Konfigurationsmodell.

  • firewalld ist die Standard-Firewall unter CentOS 9 und verwendet zonenbasierte Verwaltung.

  • Überprüfen Sie Firewall-Regeln immer nach Änderungen, um unbeabsichtigte Aussperrungen zu vermeiden – insbesondere bei SSH-Zugriff.

Was Sie als Nächstes tun können

Sie können Ports auch über die Horizon-Oberfläche mithilfe von Security Groups öffnen. Grundlegende Informationen dazu finden Sie in diesem Artikel: Wie verwendet man Sicherheitsgruppen in Horizon?.

In diesem Artikel erfahren Sie, wie Sie über die Horizon-Konsole auf die internen Abläufe einer virtuellen Maschine zugreifen können: Wie kann ich von der OpenStack-Konsole aus auf die VM zugreifen?.