Die UFW-Firewall konfigurieren

LinuxBeginner
Jetzt üben

Einführung

Stellen Sie sich Ihren Computer als ein Haus vor. Standardmäßig könnten Türen und Fenster offen sein, sodass jeder eintreten kann. Um das Haus zu sichern, benötigen Sie einen Sicherheitsdienst, der den Zugriff anhand festgelegter Regeln kontrolliert.

Unter Linux übernimmt UFW (Uncomplicated Firewall) diese Aufgabe. UFW wurde als einfachere Benutzeroberfläche für Firewall-Systeme auf niedrigerer Ebene entwickelt. Damit können Sie festlegen, wer eine Verbindung zu Ihrem System herstellen darf und wer nicht.

Diese Unterscheidung ist wichtig: UFW ist eine Verwaltungsebene und nicht selbst die Firewall-Engine. UFW bietet Einsteigern eine einfachere Oberfläche für Netzwerkrichtlinien, ohne dass sie Regeln für die Paketfilterung auf niedriger Ebene direkt schreiben müssen.

Die Konfiguration einer Firewall in einer Cloud-Umgebung wie LabEx erfordert jedoch Vorsicht. Wenn Sie standardmäßig alle eingehenden Verbindungen blockieren, was eine gängige Sicherheitsmaßnahme ist, könnten Sie versehentlich die Verbindung zur LabEx-Umgebung unterbrechen.

In diesem Lab verwenden Sie daher einen sicheren Ansatz:

  1. Setzen Sie die Standardrichtlinie für eingehende Verbindungen auf Allow Incoming, um eine Aussperrung zu verhindern.
  2. Erlauben Sie Datenverkehr auf Port 8080 für eine Webanwendung ausdrücklich.
  3. Aktivieren Sie die Firewall.

So lernen Sie, UFW-Regeln zu verwalten, ohne den Zugriff auf Ihren Arbeitsbereich zu verlieren.

Firewall-Status prüfen

Bevor Sie Änderungen vornehmen, sollten Sie den aktuellen Zustand Ihrer Anwendung und der Firewall kennen.

Auf Port 8080 läuft ein einfacher Webserver. Prüfen Sie zunächst, ob die Anwendung erreichbar ist.

Führen Sie den folgenden Befehl aus:

curl -I 127.0.0.1:8080

Sie sollten eine ähnliche HTTP-Antwort sehen:

HTTP/1.0 200 OK
Server: SimpleHTTP/0.6 Python/3.10.6
...

Damit ist bestätigt, dass die Webanwendung läuft und lokal erreichbar ist.

Wenn Sie den Dienst vor der Änderung der Firewall prüfen, können Sie zwei verschiedene Problemarten voneinander unterscheiden: Probleme mit der Anwendung und Probleme mit Netzwerkrichtlinien. Wenn der Dienst bereits lokal nicht funktioniert, liegt die Ursache wahrscheinlich nicht zuerst bei der Firewall.

Prüfen Sie anschließend den UFW-Status, um festzustellen, ob UFW derzeit aktiv ist.

sudo ufw status

Wahrscheinlich sehen Sie:

Status: inactive

Das bedeutet, dass UFW installiert ist, aber derzeit keine Regeln durchsetzt. Der gesamte Datenverkehr kann ungehindert passieren.

Ein Firewall-Regelwerk ist im Grunde eine Richtlinie für den Netzwerkzugriff. „Inactive“ bedeutet nicht, dass die Software defekt ist. Es bedeutet, dass die Richtlinie derzeit nicht durchgesetzt wird.

Standardrichtlinie und Regeln konfigurieren

Konfigurieren Sie nun, wie die Firewall den Datenverkehr behandelt.

Standardrichtlinie auf Allow setzen

UFW ist standardmäßig häufig so konfiguriert, dass alle eingehenden Verbindungen abgelehnt werden. Auf einem lokalen Computer ist das sicher. In der Online-Umgebung von LabEx kann das Blockieren aller eingehenden Verbindungen jedoch die Verbindung zwischen Ihrem Browser und dem Lab unterbrechen.

Setzen Sie deshalb die Standardrichtlinie für eingehenden Datenverkehr auf ALLOW:

sudo ufw default allow incoming

Ausgabe:

Default incoming policy changed to 'allow'
(be sure to update your rules accordingly)

Port 8080 erlauben

Erstellen Sie als Nächstes eine spezifische Regel, die Datenverkehr zu unserer Webanwendung auf Port 8080 ausdrücklich erlaubt. Das ist auch dann eine gute Vorgehensweise, wenn die Standardrichtlinie auf „allow“ steht: Die Regel dokumentiert Ihre Absicht und bereitet die Konfiguration auf eine mögliche spätere Umstellung der Standardrichtlinie auf „deny“ vor.

Diese ausdrückliche Festlegung ist für die Sicherheit wichtig. Anhand einer klaren Regel lässt sich später leichter nachvollziehen, warum ein Port geöffnet ist und ob diese Freigabe noch erforderlich ist.

sudo ufw allow 8080

Das System bestätigt die Änderung:

Rules updated
Rules updated (v6)

Damit haben Sie eine sichere Ausgangskonfiguration eingerichtet und eine spezifische Regel für Ihre Anwendung hinzugefügt.

Firewall aktivieren

Nachdem Sie die Regeln konfiguriert haben, aktivieren Sie nun die Firewall.

Führen Sie den folgenden Befehl aus, um UFW zu aktivieren:

sudo ufw enable

Da Sie die Standardrichtlinie auf ALLOW gesetzt haben, aktiviert UFW die Firewall sofort, ohne Sie davor zu warnen, dass die SSH-Verbindung unterbrochen werden könnte. Eine solche Warnung erscheint häufig, wenn die Standardrichtlinie auf „deny“ steht.

Sie sollten Folgendes sehen:

Firewall is active and enabled on system startup

Damit schalten Sie den Sicherheitsdienst effektiv ein.

UFW speichert die Regeln nun nicht mehr nur, sondern setzt sie auch durch. Der Unterschied zwischen einer konfigurierten und einer aktiven Richtlinie ist ein grundlegendes Sicherheitskonzept, das in vielen Systemen gilt.

Firewall-Konfiguration überprüfen

Prüfen Sie abschließend, ob die Firewall aktiv ist und die Regeln korrekt angewendet werden.

Rufen Sie den Status erneut ab:

sudo ufw status

Nun sollte der Status active sein. Außerdem sollten die von Ihnen erstellten Regeln angezeigt werden:

Status: active

To                         Action      From
--                         ------      ----
8080                       ALLOW       Anywhere
8080 (v6)                  ALLOW       Anywhere (v6)

Verbindung testen

Stellen Sie sicher, dass die Webanwendung trotz aktivierter Firewall weiterhin erreichbar ist.

curl -I 127.0.0.1:8080

Sie sollten wie zuvor dieselbe Antwort HTTP/1.0 200 OK erhalten.

Damit ist bestätigt:

  1. Die Firewall ist aktiv.
  2. Die Regeln funktionieren wie erwartet.
  3. Die Anwendung bleibt erreichbar.

Zusammenfassung

In diesem Lab haben Sie die UFW-Firewall erfolgreich konfiguriert und aktiviert.

Sie haben gelernt:

  1. Firewall-Status prüfen: Verwenden Sie sudo ufw status, um festzustellen, ob die Firewall aktiv ist.
  2. Sichere Standardeinstellungen konfigurieren: Verwenden Sie sudo ufw default allow incoming, um versehentliche Aussperrungen in Cloud-Umgebungen zu verhindern.
  3. Regeln hinzufügen: Verwenden Sie sudo ufw allow 8080, um Datenverkehr auf bestimmten Ports zu erlauben.
  4. Firewall aktivieren: Verwenden Sie sudo ufw enable, um die Regeln zu aktivieren.

In einer Produktionsumgebung würden Sie die Standardrichtlinie für eingehenden Datenverkehr normalerweise auf deny setzen und ausschließlich die benötigten Ports erlauben, zum Beispiel 22 für SSH oder 80 für HTTP. Zu verstehen, wie Sie diese Regeln sicher verwalten, ist jedoch der erste Schritt, um Ihr System abzusichern.