GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie eine Firewall mit UFW unter Linux ein

Diese Anleitung erklärt, was UFW ist, wie man UFW unter Linux installiert und wie man eine Firewall mit UFW auf verschiedenen Linux-Betriebssystemen einrichtet.

Einführung

Sicherheit ist ein ernstes Geschäft. Unabhängig davon, ob Sie Ihr Linux-Betriebssystem in Rechenzentren oder auf Ihrem Desktop ausführen, sollten Sie Ihr Betriebssystem vor allen möglichen Bedrohungen schützen.

Tatsächlich werden Server, die in der Unternehmensumgebung laufen, gut geschützt. Die meisten Unternehmen investieren Millionen von Dollar, um ihre Infrastruktur zu sichern.

Es wird ein separates Netzwerkteam, Firewallteam, Sicherheitsteam geben, um Ihre Umgebung und Linux-Server zu schützen. Dies ist nicht der Fall, wenn Sie Linux auf Ihren Desktops oder Servern ausführen.

Sie sollten wissen, wie Sie Ihre Linux-Rechner mit den richtigen Tools sichern. Ein solches Tool ist UFW .

Was ist UFW?

UFW , steht für U nkompliziert F irew all, ist ein Firewall-Programm, das standardmäßig bei Ubuntu-basierten Distributionen vorinstalliert ist.

Warum UFW statt iptables? Sie fragen sich vielleicht.

Falls Sie es noch nicht wissen, Netfilter ist ein Paketfiltersystem, das mit einem Linux-Kernel ausgeliefert wird, und iptables werden verwendet, um Netzfilter mit einer Reihe von Befehlen zu manipulieren.

Sich mit iptables vertraut zu machen, kann einige Zeit dauern und eine entmutigende Aufgabe sein. Um das Firewall-Management einfach zu machen, werden viele Frontends für iptables erstellt. UFW ist einer von ihnen.

UFW ist ein Kommandozeilen-Frontend zur Verwaltung von iptables. Es bietet einen Rahmen zum Verwalten und Manipulieren der Netfilter-Firewall.

UFW ist standardmäßig in allen Ubuntu-Installationen nach Version 8.04 LTS verfügbar.

Es gibt auch ein grafisches Frontend für UFW namens Gufw . Wir werden darüber in einem separaten Leitfaden sprechen. In diesem Artikel konzentrieren wir uns auf die Verwendung von ufw über die Befehlszeile.

Lassen Sie uns ohne weitere Umschweife fortfahren und sehen, wie die UFW-Firewall unter Linux installiert und eingerichtet wird.

1. Installieren Sie UFW unter Linux

UFW ist bei den meisten Debian- und Arch-basierten Distributionen vorinstalliert. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob UFW installiert ist oder nicht:

$ welche ufw 
/usr/sbin/ufw
$ ufw-Version 
ufw 0,36
Copyright 2008-2015 Canonical Ltd.

Wenn es nicht in Ihrer Distribution installiert ist, können Sie es mit dem Standard-Paketmanager Ihrer Distribution installieren.

Um UFW unter Alpine Linux zu installieren, führen Sie Folgendes aus:

$ sudo apk füge ufw hinzu

Installieren Sie UFW in Arch Linux und seinen Varianten wie EndeavourOS und Manjaro Linux:

$ sudo pacman -S ufw

Installieren Sie ufw in Debian, Ubuntu und seinen Derivaten:

$ sudo apt-Aktualisierung 
$ sudo apt install ufw

Installieren Sie UFW in Fedora:

$ sudo dnf install ufw

UFW ist in [EPEL] verfügbar Repository für Enterprise-Linux-Betriebssysteme wie RHEL, CentOS, AlmaLinux und Rocky Linux.

Aktivieren Sie [EPEL] Repository und installieren Sie UFW in RHEL, CentOS, AlmaLinux, Rocky Linux wie unten:

$ sudo dnf install epel-release
$ sudo dnf install ufw

Installieren Sie UFW in openSUSE:

$ sudo zypper install ufw

1.1. Aktivieren, starten und stoppen Sie den UFW-Dienst

In Debian-basierten Systemen wird der UFW-Daemon automatisch gestartet und aktiviert.

Führen Sie den folgenden Befehl aus, um den Status des UFW-Dienstes zu überprüfen:

$ systemctl status ufw

Beispielausgabe:

● ufw.service - Unkomplizierte Firewall Geladen:geladen (/usr/lib/systemd/system/ufw.service; aktiviert; Herstellervorgabe> Aktiv:aktiv (beendet) seit Mo 2021-07-05 20:08:01 IST; vor 44 Sekunden Dokumentation:man:ufw(8) man:ufw-framework(8) file://usr/share/doc/ufw/README Prozess:21690 ExecStart=/usr/libexec/ufw/ufw-init start ( code=exited, stat> Main PID:21690 (code=exited, status=0/SUCCESS) CPU:169ms 05.07 systemd[1]:Fertige unkomplizierte Firewall.

Der andere Weg, um zu überprüfen, ob der UFW-Dienst aktiviert und aktiv ist:

$ systemctl ist ufw aktiviert 
aktiviert
$ systemctl is-active ufw 
aktiv

Wenn der UFW-Dienst nach der Installation nicht automatisch gestartet wird, führen Sie den folgenden Befehl aus, um den UFW-Dienst zu starten:

$ sudo systemctl start ufw

Ufw sollte auch aktiviert werden, um zwischen Systemneustarts automatisch gestartet zu werden.

$ sudo systemctl enable ufw

Oder Sie können beide Befehle zu einem kombinieren, um den UFW-Dienst wie folgt auf einmal zu aktivieren und zu starten:

$ sudo systemctl enable --now ufw

Um den UFW-Dienst zu stoppen, führen Sie einfach Folgendes aus:

$ sudo systemctl stop ufw

3. Firewall mit UFW unter Linux einrichten

3.1. Hilfe bekommen

Wenn Sie neu bei UFW sind, sollten Sie nach der Installation zunächst den Hilfeabschnitt und die Manpage von UFW konsultieren, um sich einen Überblick über die Verwendung von UFW zu verschaffen.

$ ufw --help
$ man ufw

Wenn Sie die Syntax vergessen haben oder eine Referenz für eine bestimmte Funktion von ufw benötigen, sind diese beiden Befehle sehr praktisch.

3.2. Standardregeln festlegen

Mit UFW können Sie Firewall-Regeln (oder Richtlinien) erstellen, um einen bestimmten Dienst zuzulassen oder abzulehnen. Durch diese Richtlinien weisen Sie die UFW an, welche Ports, Dienste, IP-Adressen und Schnittstellen zugelassen oder verweigert werden sollen.

Es gibt Standardrichtlinien, die mit ufw geliefert werden. Die Standardrichtlinie verwirft alle eingehenden Verbindungen und lässt alle ausgehenden Verbindungen zu.

WICHTIG: Wenn Sie ufw auf einem Remote-Server einrichten, vergewissern Sie sich, dass Sie den ssh-Port oder -Dienst zugelassen haben, bevor Sie die ufw-Firewall aktivieren.

Die Standardrichtlinie für eingehende Verbindungen verweigert alle eingehenden Verbindungen. Wenn Sie also die Regeln nicht so konfiguriert haben, dass SSH zugelassen wird, werden Sie vom Remote-System ausgeschlossen und können sich nicht am System anmelden. Dies ist nicht der Fall, wenn Sie ufw auf Ihrem lokalen System ausführen.

Die Standardrichtlinien sind in /etc/default/ufw definiert Datei. Hier ist der Inhalt der Datei:

Von hier aus können wir Standardrichtlinien festlegen.

Alternativ können wir den ufw allow verwenden Befehl zum Festlegen von Standardrichtlinien für eingehende und ausgehende Befehle:

$ sudo ufw default verweigert eingehenden
$ sudo ufw standardmäßig ausgehend zulassen

3.2.1. Überprüfen Sie den Status der UFW-Firewallregeln

Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Standardrichtlinien aktiv sind:

$ sudo ufw-Status

Beispielausgabe:

Status:activeTo Aktion From-- ------ ----SSH ALLOW Anywhere 224.0.0.251 mDNS ALLOW Anywhere SSH (v6) ALLOW Anywhere (v6) ff02::fb mDNS ALLOW Anywhere (v6)  

Und für ausführlichere Statusinformationen verwenden Sie diesen Befehl:

$ sudo ufw Status ausführlich

Beispielausgabe:

Status:activeLogging:on (low)Default:deny (eingehend), allow (ausgehend), deny (routed) Neue Profile:skipTo Action From-- ------ ----22/tcp (SSH) ERLAUBT IN Anywhere 224.0.0.251 5353/udp (mDNS) ERLAUBT IN Anywhere 22/tcp (SSH (v6)) ERLAUBT IN Überall (v6) ff02::fb 5353/udp (mDNS) ERLAUBEN IN Überall (v6) 

Um das nummerierte Format anzuzeigen, führen Sie Folgendes aus:

$ sudo ufw status nummeriert

3.2.2. Regeln hinzufügen

Lassen Sie mich SSH nehmen als Beispiel, um zu demonstrieren, wie man Firewall-Regeln mit ufw hinzufügt Befehl. Sehen Sie sich die folgenden Befehle an:

$ sudo ufw ssh zulassen
$ sudo ufw erlauben 22
$ sudo ufw allow 22/tcp
$ sudo ufw erlaubt 2222/tcp

Alle Befehle dienen demselben Zweck.

[ 1 ] - Im ersten Befehl erlaube ich allen Zugriff auf ssh Service. UFW weiß standardmäßig, dass ssh auf Port 22 lauscht . Wenn Sie also ssh verwenden, erlauben Sie es service, wird er auch die Regel für Port 22 erzwingen .
[ 2 ] - Im zweiten Befehl sage ich ausdrücklich, eingehende Verbindungen für Port 22 zuzulassen .
[ 3 ] - Der dritte Befehl ist derselbe wie der zweite Befehl. Es erlaubt allen Zugriff auf tcp Port 22 . Es werden sowohl TCP- als auch UDP-Protokolle unterstützt.
[ 4 ] - Im vierten Befehl erlaube ich einen benutzerdefinierten SSH-Port (z. B. 2222 ), um die eingehenden Verbindungen anzunehmen.

Sie können diese vier Befehle nicht nur für ssh, sondern für beliebige Dienste und Ports verwenden. Wenn Sie beispielsweise eine Verbindung zu PostgreSQL herstellen möchten, das auf Port 5433 ausgeführt wird , dann sollte die Regel wie unten hinzugefügt werden.

$ sudo ufw erlauben 5433

Ebenso können wir ufw deny verwenden Befehl zum Ablehnen eingehender Verbindungen:

$ sudo ufw deny 5433

Dieser Befehl verweigert den Datenverkehr auf Port 5433 .

3.2.3. UFW-Firewallregeln löschen

Um eine Regel oder Richtlinie zu entfernen, können Sie den Befehl ufw delete verwenden.

Wenn Sie beispielsweise keinen HTTP-Datenverkehr mehr zulassen möchten, führen Sie einfach Folgendes aus:

sudo ufw delete allow 80

3.2.4. UFW-Firewallregeln aktivieren, deaktivieren und neu laden

Dies unterscheidet sich vom Aktivieren und Starten des UFW-Daemons. Das Starten der Unit ufw systemd erzwingt Ihre Firewall-Regeln nicht. UFW verfügt über spezielle Befehle zum Aktivieren, Deaktivieren und Neuladen von Firewall-Regeln.

Damit die Regeln wirksam werden, müssen Sie den folgenden Befehl ausführen:

$ sudo ufw aktivieren 
Firewall ist aktiv und wird beim Systemstart aktiviert

Wie bereits erwähnt, verwenden Sie den folgenden Befehl, um den Status der UFW-Firewallregeln anzuzeigen:

$ sudo ufw-Status

Beispielausgabe:

Status:activeTo Aktion From-- ------ ----SSH ALLOW Anywhere 224.0.0.251 mDNS ALLOW Anywhere SSH (v6) ALLOW Anywhere (v6) ff02::fb mDNS ALLOW Anywhere (v6)  

Um die Firewall-Regeln zu deaktivieren, führen Sie Folgendes aus:

$ sudo ufw deaktivieren 
Firewall wurde beim Systemstart angehalten und deaktiviert

Bitte beachten: Der obige Befehl deaktiviert nur die Firewall-Regeln. Der UFW-Daemon wird weiterhin ausgeführt und bei Neustarts aktiviert.

Laden Sie nach dem Hinzufügen einer Richtlinie die ufw neu, damit die Richtlinie mit folgendem Befehl wirksam wird:

$ sudo ufw neu laden

3.2.5. Richtlinie für Portbereiche hinzufügen

Sie können eine Richtlinie für eine Reihe von Ports hinzufügen, anstatt eine Richtlinie für einen einzelnen Port zu erstellen:

$ sudo ufw erlaubt 8000:8080/tcp
$ sudo ufw deny 8000:8080/tcp

3.2.6. Richtlinien für bestimmte IP-Adressen, Subnetze und Ports hinzufügen

Mit ufw können Sie feinere Regeln erstellen. Nehmen wir an, wenn Sie möchten, dass Ihr Server nur von einer bestimmten IP aus verbunden (ssh) wird, können Sie dies tun, indem Sie die folgende Regel hinzufügen.

$ sudo ufw allow von 192.168.156.2
$ sudo ufw allow von 192.168.156.2 zu jedem Port 2222

Der erste Befehl ermöglicht es der angegebenen IP, sich basierend auf geöffneten Ports zu verbinden. Der zweite Befehl gibt an, dass der Benutzer eine Verbindung zu Port 2222 herstellen kann nur von 192.168.156.2 .

Damit sich eine Gruppe von IPs aus demselben Subnetz mit ssh verbinden kann , können Sie das Subnetz verwenden, während Sie eine Regel hinzufügen, sodass alle IP-Teile dieses Subnetzes mit Port 2222 verbunden werden können .

$ sudo ufw erlauben von 192.168.156.1/24 zu jedem Port 2222

3.2.7. Netzwerkschnittstellenrichtlinie hinzufügen

Sie können auch Richtlinien basierend auf Netzwerkschnittstellen erstellen. Der folgende Befehl erstellt eine Richtlinie zum Akzeptieren von Verbindungen für die Netzwerkschnittstelle en01 an Port 2222 .

$ sudo ufw erlaubt in en01 jeden Port 2222

3.2.8. Testen Sie Regeln, ohne sie anzuwenden, indem Sie die Probelaufoption verwenden

UFW hat --dry-run Möglichkeit, Regeln zu testen, ohne sie tatsächlich anzuwenden. Folgendes würde beispielsweise beim Öffnen des SSH-Ports angewendet werden:

$ sudo ufw --dry-run Allow ssh

Wie Sie in der obigen Ausgabe sehen können, gibt der ufw-Befehl nur die resultierenden Regeln aus, wendet sie aber nicht an, wenn wir --dry-run hinzufügen Möglichkeit. Dies ist praktisch, wenn Sie Firewall-Richtlinien testen möchten.

3.2.9. Kommentar zu jeder Regel hinzufügen

Möglicherweise haben Sie mehrere Regeln hinzugefügt. Nach einer bestimmten Anzahl von Regeln (z. B. 50) können Sie sich nicht mehr daran erinnern, worum es in der Regel geht.

In diesem Fall können Sie jeder Regel wie folgt einen Kommentar hinzufügen:

$ sudo ufw allow 22 Kommentar 'Port 22 für ssh öffnen'

Der obige Befehl lässt den gesamten Datenverkehr an Port 22 zu und fügt einen Kommentar für die Regel hinzu. Auf diese Weise können Sie den Zweck einer bestimmten Regel leicht finden.

4. Welche Regel hat Priorität?

Priorität ist wichtig, wenn Sie mehrere Regeln für dieselben Dienste/Ports erstellen. Richtlinien erhalten ihre Priorität in der Reihenfolge, in der sie erstellt wurden. Führen Sie den folgenden Befehl aus, der Ihnen die Richtlinie zusammen mit ihrer Priorität gibt.

$ sudo ufw status nummeriert

Beispielausgabe:

Status:aktiv Bis Aktion von -- ------ ----[ 1] 22 ERLAUBEN Irgendwo [ 2] 2222 ERLAUBEN IN Irgendwo [ 3] 2222 ERLAUBEN IN 192.168.156.2 [ 4] 2222 VERWEIGERN IN 192.168.157.0/24  [ 5] 22 (v6) ERLAUBEN ÜBERALL (v6) [ 6] 2222 (v6) ERLAUBEN ÜBERALL (v6) 

Schauen Sie sich [ 4 ] in der obigen Ausgabe an. Jede Verbindung zu Port 2222 aus dem Subnetz 192.168.157.0/24 sollte fallen gelassen werden.

Aber wenn ich versuche, eine Verbindung von einem der Computer aus demselben Subnetz herzustellen, wird die Verbindung zugelassen, da [ 2 ].

eine hohe Priorität erhalten hat

Um dieses Verhalten zu überschreiben, müssen Sie Regeln mit Priorität erstellen. Sie können die vorhandene Regel löschen und eine neue Regel mit Priorität hinzufügen und den Dienst neu laden.

$ sudo ufw delete 4Deleting:deny from 192.168.157.0/24 to any port 2222Fortfahren mit Operation (y|n)? yRegel gelöscht
$ sudo ufw insert 2 deny von 192.168.157.0/24 zu jedem Port 2222 
Regel eingefügt
$ sudo ufw neu laden 
Firewall neu geladen
$ sudo ufw status numberedStatus:activeTo Aktion From-- ------ ----[ 1] 22 ALLOW IN Anywhere[ 2] 2222 DENY IN 192.168.157.0/24[ 3] 2222 ALLOW IN Anywhere[ 4] 2222 ERLAUBEN IN 192.168.156.2[ 5] 22 (v6) ERLAUBEN IN überall (v6)[ 6] 2222 (v6) ERLAUBEN IN überall (v6)

Schauen Sie sich die obige Ausgabe an. Die Priorität wird [ 2 ] neu zugewiesen. Wenn ich jetzt versuche, mich mit Port 2222 zu verbinden
von 192.168.157.0/24 , meine Verbindung wird abgelehnt.

5. UFW-Protokollierung

Protokolle sind die beste Wahl, wenn etwas schief gelaufen ist.

Führen Sie den folgenden Befehl aus, um die UFW-Protokollierung zu deaktivieren:

$ sudo ufw Abmelden 
Protokollierung deaktiviert

Um die UFW-Protokollierung zu aktivieren, führen Sie Folgendes aus:

$ sudo ufw Anmeldung 
Protokollierung aktiviert

Es gibt vier Protokollierungsstufen, nämlich Niedrig , mittel , hoch , und voll . Abhängig von der gewählten Ebene werden die Protokolle unter /var/log/ufw.log generiert Datei. Standardmäßig ist die Protokollebene niedrig.

Sie können den folgenden Befehl verwenden, um die gewünschte Stufe einzustellen:

$ sudo ufw Protokollierung [ hoch | mittel | Vollständig | Niedrig ]

Um den Protokollierungsstatus und die Protokollebene zu überprüfen, führen Sie ufw status aus Befehl und suchen Sie nach logging Eintrag.

$ sudo ufw Status ausführlich 
Status:aktiv
Protokollierung:an (hoch)
Standard:Deny (eingehend), Allow (ausgehend), Deny (geroutet)
Neue Profile:überspringen

6. Anwendungsprofile

Wenn Sie Pakete mit Ihrem Paketmanager installieren (z. B. apt oder pacman), wird in ufw ein Anwendungsprofil erstellt, das Regeln für dieses Paket definiert.

Wenn Sie beispielsweise einen OpenSSH-Server mit apt installieren , dann wird das Profil für Port 22 erstellt . Alle Anwendungsprofile werden unter /etc/ufw/applications.d gespeichert Verzeichnis.

Führen Sie den folgenden Befehl aus, um die Liste der Anwendungsprofile abzurufen:

$ sudo ufw App-Liste

Beispielausgabe:

Verfügbare Anwendungen:CUPSOpenSSH

Dies ist eine Testmaschine. Ich habe nur OpenSSH installiert. Sie sehen also nur zwei Profile.

Führen Sie den folgenden Befehl aus, um detaillierte Informationen zu diesem Profil und zu den von ihm erzwungenen Richtlinien zu erhalten:

$ sudo ufw app info 'OpenSSH'

Beispielausgabe:

Profil:OpenSSH 
Titel:Secure Shell Server, ein rshd-Ersatz
Beschreibung:OpenSSH ist eine freie Implementierung des Secure Shell-Protokolls.
Hafen:
22/tcp

7. Setzen Sie die UFW-Firewall auf die Standardrichtlinie zurück

Wenn Sie alle von Ihnen erstellten Regeln bereinigen und auf die Standardwerte zurücksetzen möchten, können Sie dies tun, indem Sie ufw reset ausführen Befehl.

$ sudo ufw reset

Beispielausgabe:

Zurücksetzen aller Regeln auf die installierten Standardwerte. Vorgang fortsetzen (y|n)? ySicherung von „user.rules“ nach „/etc/ufw/user.rules.20210705_131655“Sicherung von „before.rules“ nach „/etc/ufw/before.rules.20210705_131655“Sicherung von „after.rules“ nach „/ etc/ufw/after.rules.20210705_131655'Sicherung von 'user6.rules' nach '/etc/ufw/user6.rules.20210705_131655'Sicherung von 'before6.rules' nach '/etc/ufw/before6.rules.20210705_131655' Sichern von „after6.rules“ nach „/etc/ufw/after6.rules.20210705_131655“

Wenn Sie diesen Befehl ausführen, werden Ihre aktuellen Regeln gesichert, bevor sie auf das Standardprofil zurückgesetzt werden.

Ufw hat auch viele grafische Frontends. Einer von ihnen ist Gufw .

8. Gufw, ein grafisches Frontend für UFW

Einige von Ihnen sind möglicherweise mit dem Befehlszeilenmodus nicht vertraut. Glücklicherweise ist ein grafisches Frontend für UFW verfügbar.

Gufw ist eine grafische Frontend-Anwendung zur Verwaltung der Uncomplicated Firewall (UFW) unter Linux. Gufw wurde hauptsächlich entwickelt, um Firewalls für Linux-Desktops zu installieren und zu konfigurieren.

In der folgenden Anleitung erfahren Sie, wie Sie Gufw unter Linux installieren und konfigurieren:

  • So richten Sie eine Firewall mit Gufw auf einem Linux-Desktop ein

Schlussfolgerung

In diesem Handbuch haben wir mit Beispielbefehlen besprochen, was UFW ist und wie die UFW-Firewall unter Linux installiert und eingerichtet wird.

Jetzt sind Sie an der Reihe, ufw auf Ihrem Computer zu testen. Ich schlage vor, ufw in einer beliebigen virtuellen Maschine zu testen, bevor Sie es auf Ihrem Desktop oder Server implementieren.


Linux
  1. So richten Sie eine Firewall mit UFW unter Ubuntu 20.04 ein

  2. So richten Sie eine Firewall mit UFW unter Debian 10 ein

  3. So richten Sie eine Firewall mit UFW unter Debian 9 ein

  4. So richten Sie die UFW-Firewall unter Ubuntu 18.04 ein

  5. So installieren Sie Fail2ban mit Firewalld auf Rocky Linux 8

So richten Sie die UFW-Firewall unter Debian 11 ein

So installieren Sie die UFW-Firewall unter Ubuntu 16.04 LTS

So konfigurieren Sie die Firewall mit UFW unter Ubuntu Linux

So sichern Sie eine Linux-Firewall mit IPTables-Regeln

So richten Sie die UFW-Firewall unter Linux ein

So richten Sie die UFW-Firewall unter Ubuntu 20.04 ein