Website-Suche

So installieren und konfigurieren Sie die UFW-Firewall auf Ubuntu & Debian


Da Computer miteinander verbunden sind, wachsen Dienste schnell, mit Beispielen wie E-Mail, soziale Medien, Online-Shopping, Chat und Webkonferenzen.

Diese Konnektivität ist jedoch ein zweischneidiges Schwert, da sie auch die Tür für bösartige Aktivitäten öffnet, einschließlich der Übertragung von Viren, Malware und Trojaner-Apps, die Computer schädigen können.

Warum Sie eine Firewall installieren sollten

Das Internet, als das größte Computernetzwerk, ist nicht immer mit guten Menschen gefüllt; daher müssen wir, um unsere Computer und Server zu schützen, sie sichern.

Eine wesentliche Komponente zur Sicherung von Computern oder Servern ist eine Firewall, die laut Wikipedia ist:

In der Informatik ist eine Firewall ein software- oder hardwarebasiertes Netzwerksicherheitssystem, das den ein- und ausgehenden Netzwerkverkehr kontrolliert, indem es die Datenpakete analysiert und entscheidet, ob sie basierend auf einem angewendeten Regelwerk durchgelassen werden sollen oder nicht.

Iptables ist eine weit verbreitete Firewall für Server, die eingehenden und ausgehenden Datenverkehr basierend auf einem Satz von Regeln verwaltet und nur vertrauenswürdige Verbindungen zulässt. Allerdings läuft IPTables im Konsolenmodus und kann für Anfänger kompliziert sein.

UFW: Eine einfachere Alternative zu IPTables

Um die Komplexität bei der Einrichtung von IPTables zu reduzieren, wurden viele Front-Ends entwickelt. Wenn Sie Ubuntu oder Debian verwenden, finden Sie UFW (Uncomplicated Firewall) als das standardmäßige Firewall-Tool.

UFW (Unkomplizierte Firewall) ist ein Frontend für die weit verbreitete IPTables-Firewall, die ein Framework zur Verwaltung von Netfilter bietet und eine Befehlszeilenschnittstelle zur Steuerung der Firewall enthält.

UFW ist darauf ausgelegt, für Anfänger leicht zu bedienen zu sein, die möglicherweise nicht mit Firewall-Konzepten vertraut sind. Gleichzeitig ermöglicht es fortgeschrittenen Benutzern, komplexe Regeln über die CLI zu konfigurieren.

UFW ist in Distributionen wie Debian, Ubuntu und Linux Mint verfügbar.

UFW-Firewall installieren

Bevor Sie UFW verwenden, müssen Sie überprüfen, ob es bereits auf Ihrem System installiert ist, indem Sie den folgenden Befehl verwenden, der alle installierten Pakete auflistet und die Ergebnisse filtert, um anzuzeigen, ob UFW installiert ist oder nicht.

sudo dpkg --get-selections | grep ufw

Wenn UFW nicht installiert ist, können Sie es einfach installieren, indem Sie Folgendes ausführen:

sudo apt install ufw

Sobald UFW installiert ist, ist es wichtig, seinen aktuellen Status zu überprüfen, um zu sehen, ob es aktiviert oder deaktiviert ist.

sudo ufw status

Wenn UFW inaktiv ist, müssen Sie es aktivieren, um Ihr System zu schützen.

sudo ufw enable

Wenn Sie jemals UFW deaktivieren müssen, können Sie dies mit dem folgenden einfachen Befehl tun.

sudo ufw disable 

Auflisten der aktuellen UFW-Regeln

Sobald Ihre Firewall aktiviert ist, können Sie beginnen, benutzerdefinierte Regeln hinzuzufügen, um den ein- und ausgehenden Datenverkehr zu steuern. Um den aktuellen Status Ihrer Firewall zu überprüfen und die bestehenden Regeln (einschließlich der Standardeinstellungen) anzuzeigen, können Sie den folgenden Befehl verwenden:

sudo ufw status verbose

Erklärung der Ausgabe:

  • Status: aktiv: Dies bedeutet, dass die Firewall derzeit aktiv ist und die von Ihnen festgelegten Regeln durchsetzt.
  • Protokollierung: ein (gering): Dies bedeutet, dass die Firewall grundlegende Ereignisse protokolliert, wie zum Beispiel, wann ein Paket erlaubt oder blockiert wird.
  • deny (code): Dies bedeutet, dass keine externen Verbindungen auf Ihr System zugreifen können, es sei denn, sie werden ausdrücklich durch eine von Ihnen hinzugefügte Regel erlaubt.
  • allow (outgoing): Das bedeutet, dass Ihr System frei mit externen Servern verbinden kann, wie zum Beispiel auf Websites zugreifen oder E-Mails senden.
  • deny (routed): Dies zeigt an, dass der durch Ihr System geleitete Datenverkehr (d. h. Datenverkehr, der nicht direkt von Ihrem Computer stammt) standardmäßig blockiert wird.
  • Neue Profile: überspringen: Diese Einstellung überspringt automatische Regelhinzufügungen für neue Softwareprofile, und jede neu installierte Anwendung erfordert eine manuelle Intervention, um Firewall-Regeln hinzuzufügen.

Wie man UFW-Regeln hinzufügt

Standardmäßig ist UFW so eingestellt, dass alle eingehenden Verbindungen blockiert und alle ausgehenden Verbindungen erlaubt werden, was eine gute Sicherheitsmaßnahme ist, da es unbefugten Zugriff verhindert und dennoch Ihrem Computer erlaubt, eine Verbindung zum Internet herzustellen.

Wenn Sie jedoch aus der Ferne auf Ihre Maschine zugreifen möchten, zum Beispiel über SSH, müssen Sie den entsprechenden Port ausdrücklich freigeben.

SSH-Zugriff erlauben

Um eingehende SSH-Verbindungen (die Port 22 verwenden) zuzulassen, führen Sie den folgenden Befehl aus, der eingehende Verbindungen auf Port 22 für sowohl IPv4 als auch IPv6 erlaubt.

sudo ufw allow ssh

Sie können überprüfen, ob die Regel erfolgreich hinzugefügt wurde, indem Sie Folgendes verwenden:

sudo ufw status

Auflisten von Regeln mit Zahlen

Wenn Sie viele Regeln haben und diese leichter verwalten möchten, können Sie die nummerierte Option verwenden, um sie aufzulisten:

sudo ufw status numbered

Nur TCP zulassen

Standardmäßig ermöglicht das Zulassen eines Dienstes wie SSH sowohl TCP- als auch UDP-Protokolle, aber SSH verwendet nur TCP, sodass Sie die Regel spezifischer gestalten können, indem Sie nur TCP-Verbindungen zulassen:

sudo ufw allow ssh/tcp

Zugriff verweigern

Genau wie das Zulassen des Zugriffs auf bestimmte Dienste oder Ports, ermöglicht UFW auch das Verweigern von Verkehr mithilfe einer sehr ähnlichen Befehlsstruktur. Den Zugriff zu verweigern ist wichtig, wenn Sie explizit einen bestimmten Dienst oder eine Verbindung daran hindern möchten, Ihr System zu erreichen.

Angenommen, Sie möchten FTP (das typischerweise auf Port 21 läuft) daran hindern, auf Ihrem Rechner zugänglich zu sein.

sudo ufw deny ftp

Sie können auch einen benutzerdefinierten Port oder eine IP mit derselben Ablehnungs-Syntax verwenden:

sudo ufw deny from 192.168.1.10 to any port 21

Diese Regel blockiert nur die spezifische IP 192.168.1.10, um auf Port 21 zuzugreifen.

Hinzufügen eines bestimmten Ports

Manchmal können Dienste auf Ihrem Rechner auf nicht standardmäßigen oder benutzerdefinierten Ports laufen. Zum Beispiel läuft SSH standardmäßig auf Port 22, aber aus Sicherheitsgründen ändern viele Administratoren diesen Port zu etwas anderem, wie 2290.

Um den Datenverkehr über diesen benutzerdefinierten Port (2290) zuzulassen, können Sie den folgenden Befehl ausführen:

sudo ufw allow 2290

Ermöglichung einer Reihe von Ports

In einigen Fällen möchten Sie möglicherweise mehrere Ports auf einmal öffnen, zum Beispiel, wenn Sie einen Dienst betreiben, der eine Reihe von Ports für die Kommunikation verwendet, wie bestimmte Spieleserver oder VoIP-Anwendungen.

Um einen Bereich von Ports unter Verwendung des TCP-Protokolls zu erlauben:

sudo ufw allow 2290:2300/tcp

Um denselben Bereich mit dem UDP-Protokoll zu ermöglichen:

sudo ufw allow 2290:2300/udp

Wenn Sie einen Portbereich angeben, müssen Sie auch das Protokoll (tcp oder udp) angeben. Wenn Sie dies nicht tun, erhalten Sie einen Fehler wie diesen:

ERROR: Must specify 'tcp' or 'udp' with multiple ports

Regeln für bestimmte IP-Adressen hinzufügen

Bisher haben wir Regeln basierend auf Diensten und Ports hinzugefügt, aber es erlaubt Ihnen auch, den Zugriff basierend auf IP-Adressen zu steuern, was nützlich ist, wenn Sie den Zugriff nur auf bestimmte Geräte in Ihrem Netzwerk beschränken möchten.

Zugriff von einer einzelnen IP zulassen

Um einer bestimmten IP-Adresse (z. B. 192.168.0.104) den Zugriff auf einen beliebigen Dienst zu erlauben, verwenden Sie:

sudo ufw allow from 192.168.0.104

Zugriff von einem Subnetz erlauben

Sie können auch den Zugriff aus einem gesamten IP-Bereich oder Subnetz zulassen. Zum Beispiel, um den Zugriff von jedem Gerät im 192.168.0.0/24-Bereich zu erlauben:

sudo ufw allow from 192.168.0.0/24

Angabe des Zielports (Zu)

Sie können auch Regeln hinzufügen, die steuern, wohin der Datenverkehr erlaubt ist zu gehen, nicht nur, woher er kommt. Zum Beispiel, wenn Sie SSH-Zugriff (Port 22) von überall zulassen möchten, würden Sie schreiben:

sudo ufw allow to any port 22

Kombinieren von IP, Protokoll und Port

Für noch präzisere Steuerung können Sie alle Parameter kombinieren. Zum Beispiel nur TCP-Verkehr von der IP 192.168.0.104 zu Port 22 zulassen:

sudo ufw allow from 192.168.0.104 proto tcp to any port 22

UFW-Regeln löschen

Irgendwann müssen Sie möglicherweise bestehende Firewall-Regeln löschen – sei es zur Fehlerbehebung, zum Aufräumen alter Konfigurationen oder zum Ändern von Zugriffsberechtigungen. Glücklicherweise macht UFW dies einfach.

Lassen Sie uns zwei gängige Methoden zur Entfernung von Regeln durchgehen.

Beispielszenario

Angenommen, Ihre aktuellen Firewall-Regeln sehen so aus:

To       Action    From
--       ------    ----
22/tcp   ALLOW     192.168.0.104
21/tcp   ALLOW     Anywhere
21/tcp   ALLOW     Anywhere (v6)

In diesem Fall:

  • Port 22/tcp (SSH) ist nur von der IP 192.168.0.104 aus erlaubt
  • Port 21/tcp (FTP) ist von überall erlaubt

Methode 1: Löschen nach Dienst oder Port

Wenn die Regel unter Verwendung eines Dienstnamens wie ftp hinzugefügt wurde, können Sie sie mit derselben Syntax löschen:

sudo ufw delete allow ftp

Diese Methode verlangt keine Bestätigung. Sobald Sie die Eingabetaste drücken, wird die Regel sofort gelöscht.

Methode 2: Nach Regelsnummer löschen

Manchmal funktioniert das Löschen einer Regel unter Verwendung des Servicenamens oder Ports nicht, besonders wenn die Regel unter bestimmten Bedingungen hinzugefügt wurde (z. B. nur von einer bestimmten IP erlaubt).

Sie könnten diesen Fehler sehen:

Could not delete non-existent rule
Could not delete non-existent rule (v6)

In solchen Fällen ist die beste Option, die Regel nach ihrer Nummer zu löschen.

Schritt 1: Regeln mit Zahlen auflisten
sudo ufw status numbered

Beispielausgabe:

To         Action    From
--         ------    ----
[1] 22/tcp  ALLOW     192.168.0.104
[2] 21/tcp  ALLOW     Anywhere
[3] 21/tcp  ALLOW     Anywhere (v6)
Schritt 2: Löschen Sie die Regel nach ihrer Nummer

Um die erste Regel (SSH-Zugriff von 192.168.0.104) zu löschen, führen Sie Folgendes aus:

sudo ufw delete 1

Du wirst sehen:

Deleting:
 allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

Wie man UFW-Regeln zurücksetzt

Manchmal möchten Sie möglicherweise Ihre Firewall-Konfiguration vollständig zurücksetzen, zum Beispiel, wenn Sie zu viele Regeln hinzugefügt haben und die Dinge unübersichtlich geworden sind oder Sie neu beginnen möchten.

Um alle UFW-Regeln zurückzusetzen und alles auf den Standardzustand zurückzusetzen, verwenden Sie den folgenden Befehl:

sudo ufw reset

Sie werden eine Aufforderung wie diese sehen:

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Wenn Sie y drücken, wird UFW Folgendes tun:

  • Sichern Sie Ihre bestehenden Regeln, bevor Sie sie entfernen.
  • Alle benutzerdefinierten Regeln löschen.
  • Stellen Sie die UFW-Einstellungen auf die installierten Standardwerte zurück.
  • Deaktivieren Sie die Firewall automatisch nach dem Zurücksetzen.

Nach einem Reset ist UFW ausgeschaltet, Sie müssen es erneut mit folgendem Befehl aktivieren:

sudo ufw enable

Erweiterte Funktionalität von UFW

Wie bereits erwähnt, ist UFW ein Front-End für die leistungsstarke IPTables-Firewall. Obwohl es darauf ausgelegt ist, einfach zu sein, ist es hinter den Kulissen auch sehr anpassbar.

Die erweiterten Konfigurationen von UFW werden über eine Reihe von Textdateien gehandhabt. Diese Dateien ermöglichen es Ihnen, Regeln und Optionen einzurichten, die über das hinausgehen, was das UFW-Befehlszeilentool leisten kann. Hier ist eine kurze Übersicht:

Wichtige UFW-Konfigurationsdateien:

  • /etc/default/ufw: Die Hauptkonfiguration für Standardrichtlinien, IPv6-Unterstützung und Kernelmodule.
  • /etc/ufw/before[6].rules: Regeln in diesen Dateien werden vor allen über den ufw-Befehl hinzugefügten Regeln berechnet.
  • /etc/ufw/after[6].rules: Regeln in diesen Dateien werden nach allen über den ufw-Befehl hinzugefügten Regeln berechnet.
  • /etc/ufw/sysctl.conf: einstellbare Netzwerkparameter des Kernels.
  • /etc/ufw/ufw.conf: legt fest, ob ufw beim Start aktiviert ist oder nicht, und legt das LOGLEVEL fest.
Fazit

UFW als Front-End für iptables bietet sicherlich eine einfache Benutzeroberfläche. Benutzer müssen sich die komplizierte iptables-Syntax nicht merken. UFW verwendet außerdem ‘einfaches Englisch‘ als Parameter.

Erlauben, verweigern und zurücksetzen sind einige davon. Ich glaube, dass es noch viele weitere iptables-Frontends gibt. Aber ufw ist eine der besten Alternativen für Benutzer, die ihre Firewall schnell, einfach und natürlich sicher einrichten möchten. Bitte besuchen Sie die ufw-Handbuchseite, indem Sie man ufw eingeben, für weitere Details.