Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Ubuntu-Firewall: So richten Sie UFW auf einem VPS ein

Die Konfiguration des Ubuntu-Firewalls mit UFW (Uncomplicated Firewall) schützt Ihren VPS, indem notwendige Verbindungen zugelassen und unnötiger eingehender Datenverkehr blockiert werden. Für die Einrichtung sind nur wenige Befehle nötig, doch ihre Reihenfolge ist wichtig: Geben Sie SSH frei, bevor Sie den Firewall aktivieren. Andernfalls könnten Sie den Fernzugriff verlieren.

Diese Anleitung zeigt Ihnen, wie Sie UFW installieren, sichere Standardregeln festlegen, Ports für Ihre Website freigeben, den Firewall aktivieren und anschließend Regeln verwalten.

Das Wichtigste auf einen Blick

  • UFW bietet eine einfache Möglichkeit, den Ubuntu-Firewall über die Befehlszeile zu verwalten.
  • Geben Sie den tatsächlich verwendeten SSH-Port frei, bevor Sie UFW auf einem entfernten VPS aktivieren.
  • Blockieren Sie unaufgeforderten eingehenden Datenverkehr standardmäßig und geben Sie nur die Ports frei, die Ihre Dienste benötigen.
  • Prüfen Sie den Zugriff über eine zweite Verbindung und überprüfen Sie die Regeln, wenn Sie Anwendungen hinzufügen oder entfernen.

Was ist UFW unter Ubuntu?

UFW ist ein Tool zur Firewall-Konfiguration, das Regeln für das Paketfiltersystem des Linux-Kernels verwaltet. Statt Regeln auf niedriger Ebene zu schreiben, können Sie Verbindungen mit Befehlen wie ufw allow und ufw delete zulassen oder sperren.

Bei einem typischen VPS für Webhosting geben Sie SSH für die Administration sowie die Ports 80 und 443 für Besucher frei. Datenbank- und interne Anwendungsports sollten in der Regel nicht über das öffentliche Internet erreichbar sein.

Bevor Sie den Ubuntu-Firewall konfigurieren

Sie benötigen einen Ubuntu-VPS mit sudo-Berechtigung und einer funktionierenden SSH-Verbindung. Wenn Sie noch wenig Erfahrung mit der Fernadministration haben, lesen Sie den ZYNOO-Artikel SSH-Befehle für Anfänger.

Lassen Sie Ihre aktuelle SSH-Sitzung geöffnet. Prüfen Sie, ob die Web- oder Wiederherstellungskonsole Ihres VPS-Anbieters funktioniert. Netzwerk-Firewalls auf Anbieterebene sind von UFW unabhängig und benötigen möglicherweise ebenfalls passende Regeln.

Diese Anleitung setzt eine neue oder inaktive UFW-Konfiguration voraus. Falls UFW bereits aktiv ist, prüfen Sie die vorhandenen Regeln und die Anforderungen Ihrer Dienste, bevor Sie die Standardrichtlinie ändern.

Firewall-Konfiguration eines Ubuntu-VPS mit UFW

Schritt 1: UFW prüfen und installieren

Prüfen Sie, ob UFW verfügbar ist:

sudo ufw status

Status: inactive bedeutet, dass UFW installiert ist, aber noch keine Regeln durchsetzt. Falls der Befehl nicht gefunden wird, installieren Sie UFW:

sudo apt update
sudo apt install ufw

Aktivieren Sie den Firewall noch nicht.

Schritt 2: SSH vor der Aktivierung von UFW freigeben

Ermitteln Sie den TCP-Port, auf dem SSH Verbindungen entgegennimmt:

sudo ss -ltnp

Vergleichen Sie die Ausgabe mit dem Port, den Ihr SSH-Client verwendet. Port 22 ist üblich, doch VPS-Konfigurationen können einen anderen Port verwenden.

Wenn SSH Port 22 verwendet, führen Sie Folgendes aus:

sudo ufw allow 22/tcp

Wenn SSH tatsächlich einen benutzerdefinierten Port wie 2222 verwendet, geben Sie stattdessen diesen Port frei:

sudo ufw allow 2222/tcp

Port 2222 ist nur ein Beispiel und kein zusätzlicher Port, den alle freigeben sollten. Überprüfen Sie die bereits festgelegten Regeln:

sudo ufw show added

Schritt 3: Standardregeln festlegen und IPv6 prüfen

Legen Sie fest, dass eingehende Verbindungen standardmäßig blockiert werden, während der VPS ausgehende Verbindungen aufbauen darf:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Wenn Ihr VPS über eine öffentliche IPv6-Verbindung verfügt, prüfen Sie, ob UFW IPv6 berücksichtigt:

grep '^IPV6=' /etc/default/ufw

Die erwartete Einstellung lautet IPV6=yes. Falls IPv6 verwendet wird, hier aber no eingestellt ist, bearbeiten Sie /etc/default/ufw, um die IPv6-Unterstützung zu aktivieren, bevor Sie den Firewall einschalten.

Schritt 4: Benötigte Ports für Ihre Website freigeben

Wenn der VPS eine öffentlich zugängliche Website hostet, geben Sie HTTP und HTTPS frei, bevor Sie UFW aktivieren:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Übliche Ports für einen Ubuntu-VPS sind:

DienstPortProtokoll
SSH22 (oder Ihr benutzerdefinierter Port)TCP
HTTP80TCP
HTTPS443TCP

Für eine öffentlich zugängliche Anwendung auf einem anderen TCP-Port lautet die UFW-Syntax zur Portfreigabe:

sudo ufw allow 8080/tcp

Führen Sie diesen Beispielbefehl nur aus, wenn Ihr Dienst über Port 8080 von außen erreichbar sein muss. Geben Sie für einen UDP-Dienst stattdessen /udp an, beispielsweise sudo ufw allow 51820/udp für einen WireGuard-Endpunkt, der auf diesem Port konfiguriert ist.

Sie können auch die verfügbaren Anwendungsprofile prüfen:

sudo ufw app list

Wenn Nginx Full aufgeführt ist, prüfen Sie die zugehörigen Ports mit sudo ufw app info 'Nginx Full'. Der Befehl sudo ufw allow 'Nginx Full' kann die beiden oben genannten Portregeln für die Website ersetzen; Sie benötigen nicht beide Varianten. Anwendungen hinter einem lokalen Nginx-Reverse-Proxy sollten ihren Backend-Port in der Regel nicht öffentlich zugänglich machen.

Schritt 5: UFW aktivieren und den Firewall überprüfen

Sobald SSH und alle erforderlichen Dienstports freigegeben sind, aktivieren Sie UFW:

sudo ufw enable

Möglicherweise erscheint eine Warnung, dass sich der Vorgang auf SSH auswirken könnte. Fahren Sie erst fort, nachdem Sie Ihre SSH-Regel und den Wiederherstellungszugriff überprüft haben. Prüfen Sie die aktiven Regeln:

sudo ufw status verbose

Sie sollten Status: active, die Standardrichtlinien und Ihre freigegebenen Ports sehen. UFW wird außerdem beim Systemstart automatisch aktiviert.

Bevor Sie Ihre ursprüngliche SSH-Sitzung schließen, stellen Sie über ein zweites Terminal erneut eine Verbindung her. Verwenden Sie auf Ihrem eigenen Computer ssh -p 22 username@server-ip und ersetzen Sie Benutzername, Adresse und Port nach Bedarf. Testen Sie Ihre Website von außen, wenn Sie die Ports 80 und 443 freigegeben haben. Eine ALLOW-Regel allein beweist nicht, dass der Dienst erreichbar ist.

Schritt 6: UFW-Regeln verwalten, einschränken und löschen

So listen Sie Firewall-Regeln mit Nummern auf:

sudo ufw status numbered

So löschen Sie eine veraltete Freigaberegel, beispielsweise für TCP-Port 8080:

sudo ufw delete allow 8080/tcp

Sie können eine Regel auch anhand ihrer Nummer löschen (sudo ufw delete 3). Prüfen Sie jedoch zuerst die aktuelle Liste: Die Nummerierung kann sich ändern, und beim Löschen nach Nummer wird möglicherweise nur eine Regel eines zusammengehörigen IPv4-/IPv6-Paars entfernt.

Optional: SSH auf Ihre IP-Adresse beschränken

Wenn Ihre IP-Adresse für die Administration unverändert bleibt, können Sie SSH auf diese Adresse beschränken. Zum Beispiel:

sudo ufw allow from 203.0.113.10 to any port 22 proto tcp

Ersetzen Sie die Beispiel-IP durch Ihre tatsächliche öffentliche IP-Adresse. Testen Sie eine neue Anmeldung von dieser Adresse aus und entfernen Sie anschließend die bisherige allgemeine Freigaberegel mit sudo ufw delete allow 22/tcp. Wenn Sie die allgemeine Regel beibehalten, bleibt der Zugriff weiterhin für alle möglich. Halten Sie während des gesamten Vorgangs die ursprüngliche Sitzung und die Wiederherstellungskonsole verfügbar.

Optional: SSH-Verbindungsversuche begrenzen

Wenn SSH alternativ von wechselnden IP-Adressen aus erreichbar sein muss, ersetzen Sie die allgemeine Freigaberegel durch eine Begrenzung der Verbindungsrate:

sudo ufw limit 22/tcp
sudo ufw delete allow 22/tcp
sudo ufw status numbered

Tun Sie dies erst, nachdem Sie eine funktionierende SSH-Verbindung und den Wiederherstellungszugriff bestätigt haben. Falls Ihr SSH-Port nicht 22 ist, verwenden Sie den tatsächlichen Port. Testen Sie anschließend eine weitere Anmeldung. Dies ist eine Alternative zur Beschränkung auf eine IP-Adresse und sollte nicht mit ihr kombiniert werden. Die Begrenzung der Verbindungsrate ersetzt keine SSH-Schlüsselauthentifizierung.

Schritt 7: Protokolle prüfen und Zugriffsprobleme beheben

Aktivieren Sie die grundlegende Protokollierung, wenn Sie blockierten Datenverkehr untersuchen müssen:

sudo ufw logging on
sudo ufw status verbose

Je nach Protokollierungskonfiguration finden Sie UFW-Protokolle im System-Journal oder unter /var/log/ufw.log.

Falls SSH nicht mehr erreichbar ist, prüfen Sie die aktiven Regeln über die Wiederherstellungskonsole Ihres Anbieters. Als vorübergehende Notmaßnahme können Sie die Durchsetzung der Regeln mit sudo ufw disable stoppen. Korrigieren Sie anschließend die SSH-Regel und aktivieren Sie UFW erneut.

Wenn Ihre Website nicht lädt, prüfen Sie mit sudo ss -ltnp, welche Dienste Verbindungen entgegennehmen. Prüfen Sie außerdem die UFW-Regeln und eine mögliche Firewall Ihres Anbieters. Die Freigabe eines Ports startet nicht den dahinterliegenden Dienst.

Häufig gestellte Fragen

Startet der Ubuntu-Firewall nach einem Neustart automatisch?

Ja. Sobald Sie sudo ufw enable ausgeführt haben, wird UFW bei nachfolgenden Systemstarts aktiviert. Prüfen Sie die Konfiguration mit sudo ufw status verbose.

Muss ich Ubuntu nach einer Änderung der UFW-Regeln neu starten?

Nein. Regeln, die Sie über UFW hinzufügen oder entfernen, werden ohne Neustart des VPS wirksam. Sie können die aktuelle Konfiguration sofort prüfen.

Schützt der UFW-Firewall Docker-Container?

Nicht unbedingt. Von Docker veröffentlichte Ports können gewöhnliche UFW-Regeln für eingehenden Datenverkehr umgehen, da Docker eigene Netzwerkregeln konfiguriert. Lesen Sie die Firewall-Dokumentation von Docker, bevor Sie sich darauf verlassen, dass UFW den Zugriff auf Container beschränkt.

Fazit

Für eine sichere Konfiguration des Ubuntu-Firewalls mit UFW geben Sie zunächst SSH frei, legen fest, dass eingehende Verbindungen standardmäßig blockiert werden, und öffnen nur die Ports, die Ihre Anwendungen benötigen. Überprüfen Sie nach der Aktivierung von UFW den Zugriff über eine separate Verbindung und entfernen Sie nicht mehr benötigte Regeln, wenn sich die Konfiguration Ihres VPS ändert.

UFW regelt den Netzwerkzugriff, schützt aber nicht vor Missbrauch auf Anwendungsebene. Für öffentlich zugängliche Nginx-Websites ist eine Begrenzung der Anfragerate eine sinnvolle zusätzliche Schutzmaßnahme.

Table of Content

Die Nginx-Ratenbegrenzung ist eine integrierte Funktion, die steuert, wie viele HTTP-Anfragen ein Client innerhalb eines

Ein Nginx-Reverse-Proxy empfängt Anfragen von Website-Besuchern und leitet sie an einen anderen Server oder eine

Ein 502-Bad-Gateway-Fehler in Nginx bedeutet in der Regel, dass Nginx keine gültige Antwort von einem

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Nach oben scrollen