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:
Wie man eine Linux-VM erstellt und vom Windows-Desktop aus darauf zugreift auf CODE-DE
Wie man eine Linux-VM erstellt und von einer Linux-Kommandozeile auf CODE-DE zugreift
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
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
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.
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
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.
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?.