Zum Hauptinhalt springen

So richten Sie eine Firewall mit UFW auf Ubuntu ein

Veröffentlicht am:
.
15 Minuten Lesezeit
.
Für die Englische Version

Ubuntu ist ein auf Debian basierendes Linux-Betriebssystem und eignet sich sowohl für den Desktop- als auch für den Servereinsatz. Es wird in stabilen und regelmäßigen Release-Zyklen ausgeliefert, mit einer neuen Version alle sechs Monate. Langzeit-Support (LTS)-Versionen von Ubuntu werden fünf Jahre lang unterstützt und alle zwei Jahre veröffentlicht.

Ubuntu zeigt hervorragendes Engagement für Cybersicherheit. Die Standardkonfiguration findet ein Gleichgewicht zwischen Sicherheit, Leistung und Benutzerfreundlichkeit. Andererseits kann es weiter gehärtet werden, um die Angriffsfläche zu verringern. Darüber hinaus wurden Ubuntu-Versionen nach den Common Criteria zertifiziert, was eine Drittanbieter-Zulassung der Sicherheitsmechanismen des Betriebssystems bietet. Es ist auch für HITECH, FISMA und FedRAMP zertifiziert.

Ubuntu verfügt über ein integriertes L4-Paketfiltersystem namens Netfilter zur Zugriffskontrolle und eine Schnittstelle namens iptables zur Konfiguration von Netfilter. Wenn ein Paket den Server erreicht, wird es an das Netfilter-Subsystem weitergeleitet, das es basierend auf den von der Benutzerebene über iptables bereitgestellten Regeln akzeptiert, manipuliert oder ablehnt.

iptables ist eine hochgradig konfigurierbare und flexible Firewall-Lösung. Das Erlernen der iptables-Prinzipien und das Werden eines iptables-Gurus kann jedoch einige Zeit in Anspruch nehmen. Da es eine herausfordernde Aufgabe ist, die iptables-Firewall für Anfänger zu konfigurieren, wurden viele Frontends für iptables entwickelt.

Die Uncomplicated Firewall (ufw) ist eine der iptables-Frontend-Anwendungen, die ein Framework zur Verwaltung von netfilter sowie eine Befehlszeilenschnittstelle (CLI) zur Interaktion mit der Firewall umfasst. Es ist besonders gut für hostbasierte Firewalls geeignet. ufw bietet nicht nur eine benutzerfreundliche Schnittstelle für diejenigen, die neu in der Firewall-Thematik sind, sondern vereinfacht auch komplexe iptables-Anweisungen, um einem erfahrenen Administrator zu helfen.

ufw wurde erstmals in Ubuntu 8.04 LTS eingeführt. Es ist jetzt standardmäßig in allen Ubuntu-Linux-Installationen nach diesem Zeitpunkt enthalten.

Es ist weit verbreitet, die ufw als hostbasierte Firewall zu konfigurieren, um die Ubuntu-Server vor Cyberangriffen zu schützen. Mit Hilfe von ufw kann der Ubuntu-Server als Firewall- und Routing-Plattform zum Schutz der Netzwerke, insbesondere von kleinen Unternehmen (SMB) und Heimnetzwerken, verwendet werden.

In diesem Artikel zeigen wir Ihnen, wie Sie die Uncomplicated Firewall (ufw) auf einem Ubuntu 20.04 TLS Server einrichten und Funktionen der nächsten Generation für Firewalls oder L7-Filterung wie Inhalts- und Anwendungsfilterung mit Zenarmor® aktivieren.

Eine Firewall mit UFW auf Ubuntu einrichten

Abbildung 1. Einrichten einer Firewall mit UFW auf Ubuntu

Was sind die Voraussetzungen für die Installation einer Firewall auf Ubuntu mit UFW?

Um diesem Tutorial zur Konfiguration der Uncomplicated Firewall (ufw) zu folgen, benötigen Sie:

  • Ein Ubuntu 20.04 TLS Focal Fossa Server und

  • Privilegierter Zugriff auf Ihr Ubuntu-System als root oder über den sudo-Befehl. Die beste Praxis ist es, administrative Befehle als sudo-Benutzer auszuführen.

warnung

Alle gegebenen Befehle sind mit root-Rechten entweder direkt als Root-Benutzer oder durch Verwendung des sudo-Befehls auszuführen.

Starten Sie noch heute kostenlos mit Zenarmor

Was sind die Schritte zur Einrichtung einer Firewall auf Ubuntu mit UFW?

Sie können eine hostbasierte Firewall ganz einfach einrichten, indem Sie die UFW auf Ihrem Ubuntu 20.04 TLS-Server konfigurieren. Die Schritte zur Installation und Konfiguration von UFW sind unten aufgeführt:

1. UFW-Installation

UFW ist vorinstallierte Software auf Ubuntu-Server-Distributionen. Daher sollten Sie das ufw-Paket nicht auf Ihrem Server installieren müssen. Wenn ufw noch nicht auf Ihrem System installiert ist, können Sie es manuell installieren, indem Sie die folgenden Schritte ausführen:

  1. Aktualisieren Sie Ihr lokales Paket-Index, indem Sie den folgenden Befehl ausführen:

    sudo apt update && sudo apt upgrade -y
  2. Installieren Sie das ufw-Softwarepaket, indem Sie den folgenden Befehl ausführen:

    sudo apt-get install ufw -y

    Sie sollten eine Ausgabe ähnlich dieser sehen:

    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following packages were automatically installed and are no longer required:
    linux-headers-5.4.0-88 linux-headers-5.4.0-88-generic linux-image-5.4.0-88-generic linux-modules-5.4.0-88-generic linux-modules-extra-5.4.0-88-generic
    Use 'sudo apt autoremove' to remove them.
    The following NEW packages will be installed:
    ufw
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    Need to get 147 kB of archives.
    After this operation, 849 kB of additional disk space will be used.
    Get:1 http://tr.archive.ubuntu.com/ubuntu focal-updates/main amd64 ufw all 0.36-6ubuntu1 [147 kB]
    Fetched 147 kB in 0s (521 kB/s)
    Preconfiguring packages ...
    Selecting previously unselected package ufw.
    (Reading database ... 180990 files and directories currently installed.)
    Preparing to unpack .../ufw_0.36-6ubuntu1_all.deb ...
    Unpacking ufw (0.36-6ubuntu1) ...
    Setting up ufw (0.36-6ubuntu1) ...
    Creating config file /etc/ufw/before.rules with new version
    Creating config file /etc/ufw/before6.rules with new version
    Creating config file /etc/ufw/after.rules with new version
    Creating config file /etc/ufw/after6.rules with new version
    Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service ? /lib/systemd/system/ufw.service.
    Processing triggers for man-db (2.9.1-1) ...
    Processing triggers for rsyslog (8.2001.0-1ubuntu1.1) ...
    Processing triggers for systemd (245.4-4ubuntu3.13) ...

2. UFW-Deinstallation

Sie können das ufw-Paket von Ihrem Ubuntu 20.04-Server deinstallieren, indem Sie den folgenden Befehl ausführen:

sudo apt autoremove ufw --purge -y

Sie sollten eine Ausgabe sehen, die dieser ähnlich ist:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:

ufw*

0 upgraded, 0 newly installed, 1 to remove and 56 not upgraded.
After this operation, 846 kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 144553 files and directories currently installed.)
Removing ufw (0.36-6) ...
Processing triggers for man-db (2.9.1-1) ...
(Reading database ... 144462 files and directories currently installed.)
Purging configuration files for ufw (0.36-6) ...
Processing triggers for systemd (245.4-4ubuntu3.11) ...
Processing triggers for rsyslog (8.2001.0-1ubuntu1.1) ...
warnung

Es wird nicht empfohlen, die UFW von einem Server zu entfernen, der über das Internet zugänglich ist, wenn Sie nicht wissen, wie man iptables verwendet oder eine vernünftige Alternative haben.

3. UFW aktivieren

Standardmäßig ist ufw auf dem Ubuntu 20.04-Server deaktiviert. In diesem Abschnitt werden wir erklären, wie man ufw in Ubuntu aktiviert.

tipp

ufw ermöglicht es Ihnen, Regeln hinzuzufügen, bevor Sie die Firewall aktivieren. Daher sollten Sie, wenn Sie über ssh remote mit Ihrem Server verbunden sind, Folgendes ausführen:

ufw allow proto tcp from any to any port 22

Sie sollten eine Ausgabe sehen, die dieser ähnlich ist:

Rule added
Rule added (v6)

Der SSH-Port wird nach Aktivierung der Firewall geöffnet sein.

Um die ufw zu aktivieren, führen Sie den folgenden Befehl aus:

sudo ufw enable

Nach Ausführung des obigen Befehls wird die Firewall aktiviert und beim Systemstart aktiviert. Standardmäßig wird der gesamte eingehende Datenverkehr automatisch blockiert und der gesamte ausgehende Datenverkehr erlaubt, sobald die Firewall betriebsbereit ist. Die Firewall schützt Ihr System sofort, indem sie verhindert, dass sich jemand aus der Ferne damit verbindet.

warnung

Bitte beachten Sie, dass Sie eingehende SSH-Verbindungen explizit zulassen müssen, bevor Sie die UFW-Firewall aktivieren, um sich auf Ihrem Server anmelden zu können.

Sie können den Status von UFW überprüfen, um sicherzustellen, dass es ohne Fehler aktiv ist, indem Sie den folgenden Befehl ausführen:

sudo systemctl status ufw

Dies wird eine Ausgabe ähnlich der unten angegebenen anzeigen:

. ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2021-11-16 09:18:40 UTC; 8min ago
Docs: man:ufw(8)
Main PID: 344 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 10387)
Memory: 0B
CGroup: /system.slice/ufw.service

4. Überprüfen des Status und der Regeln der UFW

Um den Status der Firewall und der von UFW verwalteten Regeln zu überprüfen, können Sie den folgenden Befehl ausführen:

sudo ufw status verbose

Wenn Sie eine ufw-Regel löschen müssen, müssen Sie die zugehörige Regelnr. kennen. Um die ufw-Regeln mit ihren Sequenznummern anzuzeigen, können Sie den folgenden Befehl ausführen:

sudo ufw status numbered

Dies wird eine Ausgabe ähnlich der unten angegebenen anzeigen:

Status: active

To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 22/tcp (v6) ALLOW IN Anywhere (v6)

5. Konfigurieren der Standardrichtlinien von UFW

Die UFW-Firewall ist so konfiguriert, dass sie standardmäßig automatisch alle eingehenden Netzwerkpakete blockiert und alle ausgehenden Pakete zulässt. Daher kann sich niemand mit Ihrem Server verbinden, es sei denn, Sie öffnen explizit einen Dienstport, während alle auf Ihrem Server laufenden Anwendungen mit der Außenwelt kommunizieren können.

Die Datei /etc/default/ufw wird verwendet, um die Standardrichtlinien von UFW zu speichern. Sie können die Standardrichtlinien ändern, indem Sie den folgenden Befehl ausführen:

sudo ufw default allow|deny|reject [incoming|outgoing|routed]

Als bewährte Praxis sollten alle ausgehenden Verbindungen ebenfalls blockiert werden, und nur genehmigte ausgehende Verbindungen sollten erlaubt sein. Um dies zu erreichen, können Sie den folgenden Befehl ausführen:

sudo ufw default deny outgoing

In solchen Fällen müssen Sie alle erlaubten ausgehenden Verbindungen aufrechterhalten, indem Sie die entsprechenden allow-Regeln definieren.

6. Verwaltung von UFW-Anwendungsprofilen

Bei der Installation eines Anwendungs-Pakets mit dem apt-Befehl werden das Anwendungsprofil, das die Beschreibung des Dienstes und die UFW-Einstellungen enthält, im Verzeichnis /etc/ufw/applications.d erstellt.

Die Syntax für Anwendungsprofile ist im einfachen .INI-Datei-Format:

[`name`]
title=`title`
description=`description`
ports=`ports`

Das Feld ports kann verwendet werden, um eine durch '|' getrennte Liste von Ports/Protokollen anzugeben, wobei das Protokoll optional ist. Mehrere Ports können auch mit einer durch Kommas getrennten Liste oder einem Bereich (angegeben mit start:end) angegeben werden, wobei in diesem Fall das Protokoll erforderlich ist.

Um alle auf Ihrem Server verfügbaren Anwendungsprofile aufzulisten, führen Sie den folgenden Befehl aus:

sudo ufw app list

Je nach den auf Ihrem System installierten Anwendungen wird die Ausgabe ungefähr so aussehen:

Available applications:
Apache
Apache Full
Apache Secure
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Postfix
Postfix SMTPS
Postfix Submission

Um die Details des Firewall-Profils für eine bestimmte Anwendung anzuzeigen, führen Sie den folgenden Befehl aus:

sudo ufw app info `<name>`

wobei <name> eine der von dem Befehl zur Auflistung der Apps aufgeführten Apps ist.

Zum Beispiel können Sie die Details des Firewall-Profils für Nginx Full anzeigen, indem Sie den folgenden Befehl ausführen:

sudo ufw app info 'Nginx Full'

Und, das Ergebnis könnte ähnlich wie folgt aussehen:

Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:

80,443/tcp

Sie können auch Profile für alle bekannten Anwendungen mit dem folgenden Befehl anzeigen:

sudo ufw app info all

Dies ist eine nützliche Funktion, wenn Sie sich offene Ports auf Ihrem Server ansehen und nicht sicher sind, zu welchen Anwendungen sie gehören oder was die Anwendung macht.

Wenn der Standardport einer Anwendung geändert wird, können Sie die Anwendungsprofil-Datei bearbeiten. Nachdem Sie ein Anwendungsprofil bearbeitet haben, müssen Sie den folgenden Befehl ausführen, um die Firewall mit den neuesten Profilinformationen zu aktualisieren:

ufw app update `<name>`

Wenn Sie 'alle' für den Namen eingeben, werden alle Profile aktualisiert.

7. Aktivierung von IPv6

UFW unterstützt sowohl IPv4- als auch IPv6-Adressen. Standardmäßig sind IPv4/v6-Adressen aktiviert. Wenn Sie ein Ubuntu-System mit aktiviertem IPv6 haben, um zu überprüfen, ob die Unterstützung von IPv6-Adressen in Ihrer UFW aktiviert ist, können Sie die folgenden Schritte ausführen:

  1. Bearbeiten Sie die Datei /etc/default/ufw mit Ihrem bevorzugten Programm wie vi oder nano.

  2. Finden und setzen Sie die entsprechende Zeile auf IPv6=yes.

  3. Speichern Sie die Datei und schließen Sie sie.

  4. Um IPv6 zu aktivieren, indem Sie die Änderungen in der Datei /etc/default/ufw aktivieren, führen Sie den folgenden Befehl aus:

sudo ufw reload

8. SSH-Verbindungen zulassen

Um Ihre UFW-Firewall so zu konfigurieren, dass eingehende SSH-Verbindungen erlaubt sind, können Sie einen der folgenden Befehle ausführen:

sudo ufw allow ssh

oder

sudo ufw allow 22

Wenn Sie einen benutzerdefinierten Listening-Port für SSH-Verbindungen anstelle des Standardports 22 konfiguriert haben, müssen Sie den folgenden Befehl ausführen, um SSH zuzulassen:

sudo ufw allow `<port-number>`

Zum Beispiel, wenn Ihr SSH-Dienst auf Port 2222 läuft, können Sie den folgenden Befehl ausführen, um Verbindungen auf diesem Port zuzulassen:

sudo ufw allow 2222

Jetzt ist Ihre Firewall so konfiguriert, dass eingehende SSH-Verbindungen erlaubt sind. Sie können sie aktivieren, indem Sie Folgendes ausführen:

sudo ufw enable

Es wird darauf hingewiesen, dass das Aktivieren der Firewall bestehende SSH-Verbindungen stören kann. Geben Sie einfach y ein und drücken Sie Enter.

Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Begrenzung von SSH-Verbindungen

Die Begrenzung der Verbindungsrate wird von ufw unterstützt, was nützlich ist, um Brute-Force-Login-Angriffe zu verhindern. Wenn Sie die limit-Funktion für SSH aktivieren, erlaubt ufw normalerweise die SSH-Verbindungen, verweigert sie jedoch, wenn eine IP-Adresse versucht, innerhalb von 30 Sekunden 6 oder mehr Verbindungen herzustellen. Um die SSH-Verbindungen zur Verhinderung von Brute-Force-Angriffen zu begrenzen, geben Sie den folgenden Befehl ein:

sudo ufw limit ssh/tcp

9. Zusätzliche Verbindungen zulassen

Sie können UFW so konfigurieren, dass bestimmte Ports geöffnet werden, um bestimmte Dienste auf Ihrem Server von außen zugänglich zu machen. UFW-Regeln können entweder mit einer einfachen Syntax oder

  • eine einfache Syntax oder

  • eine vollständige Syntax.

Die einfache Syntax gibt nur den Port des Hosts und optional das Protokoll an, das erlaubt oder verweigert werden soll. Die allgemeine einfache Syntax für eine Erlauben-Regel ist unten angegeben:

sudo ufw allow `<port-number>`

Die vollständige Syntax, die vollständiger ist, gibt die Quell- und Zieladressen sowie die Ports an. Die allgemeine vollständige Syntax für eine Erlauben-Regel ist unten angegeben:

sudo ufw allow `<port-number>/<protocol>`

oder

ufw allow [proto PROTOCOL] [from ADDRESS [port PORT | app APPNAME ]] [to ADDRESS [port PORT | app APPNAME ]] [comment COMMENT]

Sie können auch den comment-Parameter verwenden, um Kommentare zu Ihren Firewall-Regeln hinzuzufügen, um Ihren Eintrag zu erklären.

In diesem Abschnitt werden wir mit einfachen Syntaxbeispielen beginnen, um Verbindungen zu den häufigsten Diensten wie DNS und HTTP zuzulassen.(S). Dann werden wir die vollständige Syntaxnutzung von UFW für erfahrene Administratoren durchgehen.

HTTP-Dienstport öffnen (80)

Dieser Abschnitt erklärt, wie man den Port 80 (HTTP) auf Ubuntu mit der ufw-Firewall öffnet. HTTP-Verbindungen können mit einem der folgenden Befehle erlaubt werden.

  1. Um nach Portnummer zu erlauben, führen Sie den folgenden Befehl aus (vollständige Syntax):

    sudo ufw allow 80/tcp
  2. Um nach Dienstnamen zuzulassen, führen Sie den folgenden Befehl aus:

    sudo ufw allow http
  3. Um nach Anwendungsprofil zuzulassen, können Sie den folgenden Befehl für NGINX ausführen:

    sudo ufw allow 'Nginx HTTP'

Open HTTPS Service Port (443)

Um Port 443 in Ubuntu zu öffnen und HTTPS-Verbindungen zuzulassen, können Sie einen der folgenden Befehle ausführen:

  1. Um nach Portnummer zu erlauben, führen Sie den folgenden Befehl aus (vollständige Syntax):

    sudo ufw allow 443/tcp
  2. Um nach Dienstnamen zuzulassen, führen Sie den folgenden Befehl aus:

    sudo ufw allow https
  3. Um nach Anwendungsprofil zuzulassen, können Sie den folgenden Befehl für NGINX ausführen:

    sudo ufw allow 'Nginx HTTPS'
tipp

Sie können sowohl die NGINX HTTP- als auch die HTTPS-Dienste aktivieren, indem Sie den folgenden Befehl ausführen:

sudo ufw allow 'Nginx Full'

Öffnen Sie den FTP-Dienstport (20:21/TCP)

Um eingehende FTP-Verbindungen zuzulassen, müssen Sie Port 21 und Port 20 freigeben, indem Sie die folgenden Befehle ausführen:

sudo ufw allow 21/tcp
sudo ufw allow 20/tcp

Öffnen Sie den MySQL-Dienstport (3306/TCP)

Um den MySQL-Port und eingehende MySQL-Verbindungen in Ubuntu zuzulassen, führen Sie einen der folgenden Befehle aus.

  1. Um nach Portnummer zuzulassen, führen Sie den folgenden Befehl aus (vollständige Syntax):

    sudo ufw allow 3306/tcp
  2. Um nach Dienstname zuzulassen, führen Sie den folgenden Befehl aus:

    sudo ufw allow mysql

Öffnen Sie den OpenVPN-Dienstport (1194/UDP)

Um VPN-Clientverbindungen zu Ihrem OpenVPN Server zuzulassen, führen Sie den folgenden Befehl aus:

sudo ufw allow 1194/udp comment 'OpenVPN server'

Öffnen Sie den WireGuard-Dienstport (51820/UDP)

Um VPN-Clientverbindungen zu Ihrem WireGuard-Server zuzulassen, führen Sie den folgenden Befehl aus:

sudo ufw allow 51820/udp comment 'WireGuard VPN server'

Öffnen Sie den DNS-Dienstport (53)

Wenn Sie einen DNS-Server auf Ihrem Ubuntu-Server betreiben, müssen Sie eingehende DNS-Verbindungen zulassen, damit Ihre Clients DNS-Abfragen an Ihren Server senden können, indem Sie einen der folgenden Befehle ausführen:

sudo ufw allow 53 comment 'DNS server'

oder

sudo ufw allow dns comment 'DNS server'

Diese Befehle erlauben TCP- und UDP-Port 53 für jede Adresse auf dem Server.

Öffnen von E-Mail-Dienstports

Die Ports, die für die Zustellung von E-Mails durch jedes der TCP/IP-Protokolle verwendet werden, sind in der untenstehenden Tabelle aufgeführt.

ServerPort
SMTP25 oder 587 (für TLS) oder 465 (für SSL)
POP110
POPS995
IMAP143
IMAP3993

Wenn Sie einen E-Mail-Dienst auf Ihrem Ubuntu-Server bereitstellen, müssen Sie die folgenden Befehle ausführen, um E-Mail-Verbindungen zuzulassen:

sudo ufw allow 25 comment 'allow smtp connections'
sudo ufw allow 587 comment 'allow smtp tls connections'
sudo ufw allow 465 comment 'allow smtp ssl connections'
sudo ufw allow 995 comment 'allow pops connections'
sudo ufw allow 110 comment 'allow pop3 connections'
sudo ufw allow 143 comment 'allow imap connections'
sudo ufw allow 993 comment 'allow imap3 connections'

10. Erlauben von Portbereichen

Sie können eingehende Verbindungen für einen Bereich von Ports zulassen, indem Sie : zwischen den Portnummern verwenden. Sie müssen jedoch das Protokoll angeben, entweder tcp oder udp. Zum Beispiel,

sudo ufw allow 65100:65200/tcp

Außerdem können Sie mehrere Ports zulassen, indem Sie ein Komma , zwischen die Portnummern setzen. Zum Beispiel,

sudo ufw allow 22,80,443/tcp

11. Verbindungen nur von einer vertrauenswürdigen IP-Adresse zulassen

Möglicherweise müssen Sie dem Administrator den Zugriff auf den Server ohne Einschränkungen erlauben. Um den Zugriff auf alle Ports von einer IP-Adresse, wie z.B. 10.0.0.100, zu erlauben, geben Sie from gefolgt von der IP-Adresse an, die Sie auf die Whitelist setzen möchten:

sudo ufw allow from 10.0.0.100

12. Erlauben Sie Verbindungen von einer vertrauenswürdigen IP-Adresse auf einem bestimmten Port

Sie müssen möglicherweise Verbindungen von einer bestimmten Adresse nur zu einem bestimmten Port zulassen. Zum Beispiel kann der MySQL-Dienst (3306) auf Ihrem Server nur vom Anwendungsserver mit der IP-Adresse 10.1.1.10 erreicht werden. Um dies zu erreichen, führen Sie den folgenden Befehl aus:

sudo ufw allow from 10.1.1.10 to any port 3306

13. Verbindungen von vertrauenswürdigen Subnetzen zulassen

Um den Zugriff auf alle Ports von einer Subnetzadresse, wie z.B. 10.0.0.0/24, zu erlauben, geben Sie from gefolgt von der Netzwerkadresse an, die Sie auf die Whitelist setzen möchten. Zum Beispiel können Sie den Benutzern im Subnetz 10.0.0.0/24 den Zugriff auf den FTP-Dienst erlauben, indem Sie den folgenden Befehl ausführen:

sudo ufw allow from 10.0.0.0/24 to any port 20:21 proto tcp

14. Verbindungen von einer bestimmten Schnittstelle zulassen

ufw wendet standardmäßig Regeln auf alle verfügbaren Schnittstellen an. Sie können dies einschränken, indem Sie die Richtung auf einer bestimmten Schnittstelle angeben. Die DIRECTION kann entweder sein:

  • in für eingehende Verbindungen oder

  • out für ausgehende Verbindungen.

Wenn Sie eine Firewall-Regel erstellen möchten, die nur für eine bestimmte Netzwerkschnittstelle gilt, geben Sie allow in on gefolgt vom Namen der Netzwerkschnittstelle ein.

Um alle neuen eingehenden HTTP-Verbindungen auf eth0 zuzulassen, verwenden Sie zum Beispiel:

ufw allow in on eth0 to any port 80 proto tcp

15. Verbindungen verweigern

Wenn Sie die Standardrichtlinie für alle eingehenden Verbindungen nicht geändert haben, blockiert UFW alle eingehenden Verbindungen, es sei denn, Sie öffnen die Verbindung ausdrücklich. Wenn Sie den Zugriff auf einen bestimmten Port verweigern möchten, können Sie den deny-Befehl und optional das protocol verwenden.

sudo ufw deny `<port>/<protocol>`

Zum Beispiel könnten Sie einen HTTP(S)-Webserver haben, der weltweit öffentlich zugänglich ist. Und Sie müssen möglicherweise die Verbindungen von einer nicht vertrauenswürdigen IP-Adresse blockieren, wie z.B. 22.33.44.55, die für Cyberangriffe auf Ihren Webserver verwendet wird. Um alle Verbindungen von einer bestimmten IP-Adresse zu verweigern, können Sie einen der folgenden Befehle ausführen:

sudo ufw deny from 22.33.44.55

oder

sudo ufw deny from 22.33.44.55 to any port 80,443 proto tcp

Wenn Sie Ihre Standardrichtlinie für eingehende Verbindungen ändern möchten, um Verbindungen zu akzeptieren, müssen Sie Verweigerungsregeln für alle Dienste oder IP-Adressen definieren, für die Sie keine Verbindungen zulassen möchten. Zum Beispiel wird dringend empfohlen, den Zugriff auf Ihren SSH-Port (22) nur auf Ihre vertrauenswürdigen IP-Adressen zu beschränken. Um eingehende Verbindungen zum SSH-Port zu verweigern, können Sie den folgenden Befehl ausführen:

sudo ufw deny ssh/tcp

16. ICMP/Ping-Anfrage ablehnen

Standardmäßig erlaubt UFW Ping-Anfragen. Aus Sicherheitsgründen müssen Sie jedoch möglicherweise die ICMP-Anfrage blockieren. Um Ping-Pakete zu blockieren, können Sie die folgenden Schritte ausführen:

  1. Bearbeiten Sie die /etc/ufw/before.rules mit Ihrem bevorzugten Editor, wie nano oder vi. Die Regeln in dieser Datei werden ausgewertet, bevor irgendwelche Regeln über den ufw-Befehl hinzugefügt werden.

  2. Entfernen oder kommentieren Sie die unten angegebenen Zeilen.

    -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT
    -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT
    -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT
    -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
  3. Speichern Sie die Datei und schließen Sie sie.

  4. Um die Änderungen zu aktivieren, können Sie die ufw neu laden, indem Sie den nächsten Befehl ausführen.

    sudo ufw reload

17. Regeln löschen

Sie können die UFW-Regeln von Ihrem Ubuntu-Server auf zwei verschiedene Arten löschen:

  1. Regelnummer

Es ist einfacher, UFW-Regeln nach Regelnummer zu löschen, besonders wenn Sie ein Anfänger sind. Um eine Regel nach Nummer zu löschen, folgen Sie diesen Schritten:

  • Zuerst müssen Sie die Nummer der Regel finden, die Sie löschen möchten, indem Sie den folgenden Befehl eingeben:
sudo ufw status numbered
Status: active

To Action From

-- ------ ----
[ 1] 22/tcp LIMIT IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] Nginx HTTP ALLOW IN Anywhere
[ 4] Nginx HTTPS ALLOW IN Anywhere
[ 5] Nginx Full ALLOW IN Anywhere
[ 6] 21/tcp ALLOW IN Anywhere
[ 7] 20/tcp ALLOW IN Anywhere
[ 8] 3306/tcp ALLOW IN Anywhere
[ 9] 1194/udp ALLOW IN Anywhere # OpenVPN server
[10] 51820/udp ALLOW IN Anywhere # WireGuard VPN server
[11] 53 ALLOW IN Anywhere # DNS server
[12] 25 ALLOW IN Anywhere # allow smtp connections
[13] 587 ALLOW IN Anywhere # allow smtp tls connections
[14] 465 ALLOW IN Anywhere # allow smtp ssl connections
[15] 995 ALLOW IN Anywhere # allow pops connections
[16] 110 ALLOW IN Anywhere # allow pop3 connections
[17] 143 ALLOW IN Anywhere # allow imap connections
[18] 993 ALLOW IN Anywhere # allow imap3 connections
[19] 65100:65200/tcp ALLOW IN Anywhere
[20] Anywhere ALLOW IN 10.0.0.100
[21] 3306 ALLOW IN 10.1.1.10
[22] 20 ALLOW IN 10.0.0.0/24
[23] 20,21/tcp ALLOW IN 10.0.0.0/24
[24] 20:21/tcp ALLOW IN 10.0.0.0/24
[25] 80/tcp on eth0 ALLOW IN Anywhere
[26] 80/tcp on ens18 ALLOW IN Anywhere
[27] Anywhere DENY IN 22.33.44.55
[28] 80,443/tcp DENY IN 22.33.44.55
[29] 22/tcp (v6) LIMIT IN Anywhere (v6)
[30] 80/tcp (v6) ALLOW IN Anywhere (v6)
[31] Nginx HTTP (v6) ALLOW IN Anywhere (v6)
[32] Nginx HTTPS (v6) ALLOW IN Anywhere (v6)
[33] Nginx Full (v6) ALLOW IN Anywhere (v6)
[34] 21/tcp (v6) ALLOW IN Anywhere (v6)
[35] 20/tcp (v6) ALLOW IN Anywhere (v6)
[36] 3306/tcp (v6) ALLOW IN Anywhere (v6)
[37] 1194/udp (v6) ALLOW IN Anywhere (v6) # OpenVPN server
[38] 51820/udp (v6) ALLOW IN Anywhere (v6) # WireGuard VPN server
[39] 53 (v6) ALLOW IN Anywhere (v6) # DNS server
[40] 25 (v6) ALLOW IN Anywhere (v6) # allow smtp connections
[41] 587 (v6) ALLOW IN Anywhere (v6) # allow smtp tls connections
[42] 465 (v6) ALLOW IN Anywhere (v6) # allow smtp ssl connections
[43] 995 (v6) ALLOW IN Anywhere (v6) # allow pops connections
[44] 110 (v6) ALLOW IN Anywhere (v6) # allow pop3 connections
[45] 143 (v6) ALLOW IN Anywhere (v6) # allow imap connections
[46] 993 (v6) ALLOW IN Anywhere (v6) # allow imap3 connections
[47] 65100:65200/tcp (v6) ALLOW IN Anywhere (v6)
[48] 80/tcp (v6) on eth0 ALLOW IN Anywhere (v6)
[49] 80/tcp (v6) on ens18 ALLOW IN Anywhere (v6)
  • Nachdem Sie die nummerierte Regel-Liste angesehen haben, um die Regel zu löschen, wie zum Beispiel die Nummer 25, führen Sie den folgenden Befehl aus:
sudo ufw delete 25

Der Output sollte so aussehen:

Deleting:
allow in on eth0 to any port 80 proto tcp
Proceed with operation (y|n)? y
Rule deleted

Bevor es gelöscht wird, werden Sie um Bestätigung gebeten. Geben Sie "y" ein und drücken Sie dann "Enter", wenn Sie sicher sind. Geben Sie "n" ein, um den Vorgang abzubrechen, wenn Sie einen Fehler machen.

  1. Angabe der tatsächlichen Regel

Sie können auch eine Regel löschen, indem Sie die tatsächliche Regel angeben, zum Beispiel, wenn Sie eine Regel zum Öffnen des Ports 8080 hinzugefügt haben, können Sie sie mit dem folgenden Befehl löschen:

sudo ufw delete allow 8080

18. UFW Deaktivierung oder Zurücksetzung

Falls Sie aus irgendeinem Grund UFW stoppen und alle Regeln deaktivieren müssen, können Sie den folgenden Befehl ausführen:

sudo ufw disable

Der Output sollte so aussehen:

Firewall stopped and disabled on system startup

Später, wenn Sie UFW wieder aktivieren und alle Regeln aktivieren müssen, können Sie den folgenden Befehl ausführen:

sudo ufw enable

Wenn Sie UFW zurücksetzen, werden alle aktiven Regeln gelöscht und die Firewall auf die Standardwerte zurückgesetzt. Wenn Sie alle Ihre Änderungen rückgängig machen und von vorne beginnen möchten, ist dies eine gute Option.

Geben Sie den folgenden Befehl ein, um UFW zurückzusetzen:

sudo ufw reset

19. UFW-Protokollierung

Standardmäßig werden alle UFW-Einträge mit dem low Protokollierungslevel in die Datei /var/log/ufw.log protokolliert. Sie benötigen möglicherweise eine höhere Protokollierungsebene. Es gibt viele verfügbare Protokollierungsstufen, und Sie können Ihre bevorzugte Option basierend darauf wählen, welche Firewall-Protokolle Sie speichern möchten.

  • aus: ufw-Protokollierung ist deaktiviert.
  • Niedrig: Protokolliert blockierte Pakete, die nicht den von Ihnen festgelegten Regeln entsprechen, und Pakete, die den von Ihnen protokollierten Regeln entsprechen.
  • Mittel: Protokolliert niedrigstufige, autorisierte Pakete, die die Regeln nicht erfüllen, ungültige Pakete und alle neuen Verbindungen zu Ihrem Server.
  • Hoch: Protokolliert mittel ohne Versuche/Rate-Limiting und alle Pakete mit Versuchslimitierung
  • Voll: Alle Firewall-Pakete werden vollständig protokolliert, ohne Einschränkungen bei der Rate/Zugriffsversuchen.

Um Ihr UFW-Protokollierungsniveau festzulegen, verwenden Sie den folgenden Befehl.

sudo ufw logging LEVEL

Zum Beispiel:

sudo ufw logging full

Um das Protokollieren für eine bestimmte Firewall-Regel, wie z.B. HTTPS, zu aktivieren, verwenden Sie den Befehl

sudo ufw allow log 443/tcp

Um die Protokollierungsfunktion von UFW zu deaktivieren, können Sie den folgenden Befehl ausführen:

sudo ufw logging off
warnung

Log-Stufen über medium erzeugen eine Menge Protokollausgaben, die schnell Ihre Festplatte füllen können. Auf einem stark frequentierten System kann das Log-Level medium eine große Menge an Protokollausgaben erzeugen.

20. Testen von UFW-Regeln

Sie können die --dry-run-Option verwenden, um Ihre UFW-Regeln zu testen. Es ist eine praktische Alternative, wenn man mit den Firewall-Einstellungen herumspielt. Wenn Sie den folgenden Befehl ausführen, können Sie ein Beispiel für die Änderungen sehen, die ohne deren Verarbeitung aufgetreten wären.:

sudo ufw --dry-run enable

Wie schwierig ist die Installation einer Firewall auf Ubuntu?

Es ist einfach, eine Firewall auf Ubuntu zu installieren und zu konfigurieren. Wie bereits erwähnt, kommt Ubuntu mit einem integrierten L4-Paketfilterungssystem sowie einer Uncomplicated Firewall (UFW), seiner Frontend-Software. UFW wurde entwickelt, um die Konfiguration der Firewall zu vereinfachen. Sie können die Firewall mit einem einfachen Befehl schnell ein- oder ausschalten. Es bietet Standardrichtlinien, die sofort damit beginnen, Ihren Server zu schützen, indem alle eingehenden Verbindungen blockiert werden. Die CLI ermöglicht es Ihnen, Ihre Firewall-Richtlinien einfach zu verwalten. Um die Firewall auf einem Ubuntu-System zu konfigurieren, benötigen Sie nur ein grundlegendes Verständnis von Netzwerken und Firewalls.

Wie aktiviert man NGFW-Funktionen auf der Ubuntu-Firewall?

iptables und seine Frontend-Anwendung UFW bieten ein benutzerfreundliches und starkes L4-Paketfiltersystem. Daher ist es weit verbreitet, sie als hostbasierte Firewall zu verwenden. Wenn Sie jedoch Ihre Ubuntu-Firewall als Firewall- und Routing-Plattform zwischen Ihrem internen Netzwerk und externen Netzwerk konfigurieren, kann sie die Clients und Ihre wertvollen Vermögenswerte in Ihrem Netzwerk nicht effektiv gegen fortschrittliche Cyber-Bedrohungen wie Phishing-Angriffe und Malware schützen. Zusätzlich zielen Cyberkriminelle heutzutage nicht nur auf Unternehmen, sondern auch auf kleine und mittlere Unternehmen (KMU) und sogar auf Privatanwender. Traditionelle L4-Paketfilter-Firewalls waren nicht auf die neuen Cyberangriffe vorbereitet. Infolgedessen ist es für jede Organisation und sogar für Privatanwender von entscheidender Bedeutung, Next-Generation-Firewalls zu installieren, um sie vor allen Arten von Angriffen zu schützen. Gartner definiert eine NGFW als:

eine drahtgeschwindigkeitsintegrierte Netzwerkplattform, die eine tiefgehende Inspektion des Datenverkehrs und die Blockierung von Angriffen durchführt.

Bitte beziehen Sie sich auf den Artikel NGFW, der von Sunny Valley Networks verfasst wurde, um weitere Informationen zu erhalten.

Glücklicherweise können Sie die Funktionen der nächsten Generation von Firewalls, wie Inhaltsfilterung und Anwendungssteuerung, ganz einfach aktivieren, indem Sie Zenarmor auf Ihrem Ubuntu-Server installieren und konfigurieren. Zenarmor bietet hochmoderne, nächste-Generation-Firewall-Funktionen für Open-Source-Firewalls, die derzeit in diesen Produkten nicht verfügbar sind. Zenarmor basiert auf einer Technologie, die einen sehr leichten, aber leistungsstarken Kern zur Paketinspektion auf Anwendungsschicht/L7 bietet. Es kann eine Vielzahl von Netzwerk-Sicherheitsfunktionen auf Unternehmensniveau kostenlos bereitstellen.

Die Hauptmerkmale von Zenarmor sind unten aufgeführt:

  • Anwendungssteuerung

  • Webfilterung

  • Echtzeit-Auto-Blockierung von aktuellen Malware-/Phishing-Ausbrüchen.

  • Benutzerfreundliches Web- und Anwendungs-Kategorisierungssystem mit einer umfangreichen und aktuellen Datenbank.

  • Zeitgesteuerte Richtlinien sind eine äußerst nützliche Funktion, insbesondere zur Verwaltung der Internetbandbreite.

  • Benutzer- und gerätebasiertes Filtern, das sehr nützlich für die Verwaltung von Schulen und Campusnetzwerken ist.

  • Cloud Threat Intelligence

  • Zentrales Cloud-Management ist eine sehr nützliche und ansprechende Funktion für Sicherheitsadministratoren, die eine große Anzahl von Firewalls verwalten müssen.

  • Umfangreiche Berichterstattung und Analysen, die Netzwerktransparenz bieten.

Um Ihr Netzwerk hinter Zenarmor zu schützen, können Sie einfach den folgenden Befehl auf Ihrem Ubuntu-Server ausführen:

curl https://updates.sunnyvalley.io/getzenarmor | sh