Zum Hauptinhalt springen

Wie richtet man eine Firewall mit UFW auf Debian ein?

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

Debian, allgemein bekannt als Debian GNU/Linux, ist eines der ältesten Linux-basierten Betriebssysteme. Es wird vom von der Gemeinschaft unterstützten Debian-Projekt entwickelt, das 1993 von Ian Murdock gegründet wurde. Viele andere Distributionen, einschließlich Ubuntu, basieren auf Debian. Debian veröffentlicht alle zwei Jahre einen neuen stabilen Zweig. Es wird etwa drei Jahre lang unterstützt, einschließlich Updates für wichtige Sicherheits- und Benutzerfreundlichkeitsprobleme. Insgesamt stehen für jede Debian-Version 5 Jahre Sicherheitsunterstützung zur Verfügung.

Die Debian-Installation kommt mit einer Standard-Firewall, iptables, die so konfiguriert ist, dass sie allen Verkehr zulässt. Zur Zugriffskontrolle enthält Debian ein integriertes L4-Paketfiltersystem namens Netfilter sowie eine Schnittstelle namens iptables zur Konfiguration des 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 anpassbare Firewall-Lösung. Das Lernen der iptables-Prinzipien und das Werden eines iptables-Gurus kann hingegen mühsam sein. Da die Konfiguration der iptables-Firewall für den durchschnittlichen Benutzer schwierig ist, wurden viele Frontend-Anwendungen für iptables entwickelt.

Die Uncomplicated Firewall (ufw) ist eine iptables-Frontend-Anwendung, die ein Framework zur Verwaltung von netfilter und eine Befehlszeilenschnittstelle (CLI) zur Interaktion mit der Firewall umfasst. Es ist besonders nützlich für hostbasierte Firewalls. Die Uncomplicated Firewall (ufw) bietet eine benutzerfreundliche Möglichkeit, netfilter zu verwalten. ufw bietet nicht nur eine benutzerfreundliche Oberfläche für diejenigen, die mit Firewall-Konzepten nicht vertraut sind, sondern vereinfacht auch komplexe iptables-Anweisungen, um einem erfahrenen Systemadministrator zu helfen.

Um Debian-Server vor Cyber-Bedrohungen zu schützen, ist es üblich, 'ufw' als hostbasierte Firewall zu konfigurieren. Der Debian-Server kann auch mit Hilfe von 'ufw' als Firewall- und Routing-Plattform für Netzwerke, insbesondere für kleine Unternehmen (KMU) und Heimnetzwerke, konfiguriert werden.

In diesem Artikel erklären wir, wie man die Uncomplicated Firewall (ufw) auf einem Debian 10/11/12-Server installiert und Zenarmor verwendet, um Funktionen der nächsten Generation wie Inhalts- und Anwendungsfilterung zu aktivieren.

Was sind die Vorteile von UFW?

UFW bietet die folgenden Vorteile:

  • Flexibel: Die UFW-Firewall ist äußerst flexibel und kann so konfiguriert werden, dass sie den Datenverkehr basierend auf einer Vielzahl von Faktoren zulässt oder blockiert. Die UFW bietet die Flexibilität, Pakete mit Quell- und Ziel-IP-Adressen, Portnummern, Protokollen und mehr zu filtern.
  • Sicher: Die UFW wurde von Millionen von Benutzern getestet und ist sicher. Die Standard-Firewall-Richtlinie ist auf "verweigern" eingestellt, was hervorragend ist, um unbeabsichtigte Dienstexposition gegenüber der Welt zu verhindern. Die Standardeinstellungen bieten einen rudimentären Schutz für das System, während sie es wesentlichen Diensten wie SSH und DNS ermöglichen, zu funktionieren. Diese Funktion verringert die Wahrscheinlichkeit von sicherheitsgefährdenden Fehlkonfigurationen oder menschlichen Fehlern.
  • Einfach zu bedienen: Die UFW ist sowohl für Entwickler als auch für Systemadministratoren einfach zu bedienen. Die von ufw verwendete Syntax macht es den Benutzern einfach, Regeln zum Erlauben oder Verhindern von Datenverkehr festzulegen. Um den Verkehr auf bestimmten Ports oder Protokollen zu erlauben oder zu verweigern, können Benutzer einfache Befehle wie "ufw allow ssh" oder "ufw deny http" verwenden, anstatt komplexe iptables-Befehle einzugeben.
  • Integration mit anderen Anwendungen: ufw ist die Standard-Firewall-Lösung auf Debian-Systemen, daher ist sie gut unterstützt und mit anderen Systemkomponenten kompatibel. Benutzer können ufw installieren und verwalten, indem sie Debians Paketverwaltungstools wie apt verwenden. Die Integration von ufw mit SSH, NFS, POP3, OpenVPN und anderen Anwendungsprofilen ist mühelos. Scripting ist machbar, was eine einfache Konfiguration des Firewall-Zugriffs auf diese Dienste über Shell-Skripte oder automatisierte Werkzeuge ermöglicht.
  • Protokollierung: Die Protokollierungsfunktionen von UFW ermöglichen es Benutzern, den Netzwerkverkehr zu überwachen und potenzielle Sicherheitsprobleme zu identifizieren. Mit Standard-Linux-Dienstprogrammen wie syslog oder journalctl können Benutzer Protokolle einsehen.
  • Kompatibilität mit iptables: UFW verwendet iptables als Backend, was bedeutet, dass es vollständig mit iptables-Regeln und -Befehlen kompatibel ist. Benutzer, die an iptables gewöhnt sind, können ihre Regeln zu ufw migrieren, ohne auf Funktionalität zu verzichten.

Was sind die Anforderungen für die Installation einer Firewall auf Debian 10/11/12 mit UFW?

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

  • Ein Debian 10 Buster oder Debian 11 Bullseye oder Debian 12 Bookworm Server und

  • Privilegierter Zugriff auf Ihr Debian-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.

Was sind die Schritte zur Installation einer Firewall mit UFW auf Debian 10/11/12?

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

1. UFW-Installation

Auf Debian-Server-Distributionen ist UFW vorinstallierte Software. Daher sollten Sie das ufw-Paket nicht auf Ihrem Server installieren müssen. Falls es noch nicht auf Ihrem System installiert ist, können Sie das ufw-Paket manuell auf Ihrem Debian-Server installieren, indem Sie die folgenden Anweisungen befolgen:

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

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

    sudo apt-get install ufw -y

    Der Output sollte ungefähr so aussehen:

      Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    The following NEW packages will be installed:
    ufw
    0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
    Need to get 0 B/164 kB of archives.
    After this operation, 852 kB of additional disk space will be used.
    Preconfiguring packages ...
    Selecting previously unselected package ufw.
    (Reading database ... 158348 files and directories currently installed.)
    Preparing to unpack .../archives/ufw_0.36-1_all.deb ...
    Unpacking ufw (0.36-1) ...
    Setting up ufw (0.36-1) ...
    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.8.5-2) ...
    Processing triggers for rsyslog (8.1901.0-1) ...
    Processing triggers for systemd (241-7~deb10u8) ...

2. UFW-Deinstallation

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

sudo apt autoremove ufw --purge -y

Der Ausgang sollte ungefähr so aussehen:

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 0 not upgraded.
After this operation, 852 kB disk space will be freed.
(Reading database ... 158456 files and directories currently installed.)
Removing ufw (0.36-1) ...
Skip stopping firewall: ufw (not enabled)
Processing triggers for man-db (2.8.5-2) ...
(Reading database ... 158363 files and directories currently installed.)
Purging configuration files for ufw (0.36-1) ...
Processing triggers for systemd (241-7~deb10u8) ...
Processing triggers for rsyslog (8.1901.0-1) ...
warnung

Es wird nicht empfohlen, die UFW von einem Server zu entfernen, der aus dem Internet zugänglich ist, wenn Sie nicht wissen, wie man iptables verwendet oder eine angemessene Alternative haben.

3. UFW aktivieren

Standardmäßig ist ufw auf Debian 10/11/12-Servern deaktiviert.

tipp

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

sudo ufw allow proto tcp from any to any port 22

Der Ausgang sollte ungefähr so aussehen:

Rule added
Rule added (v6)

Der SSH-Port wird geöffnet, nachdem die Firewall aktiviert wurde.

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

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

Nach dem Ausführen des obigen Befehls wird die Firewall aktiviert und beim Systemstart aktiviert. Standardmäßig wird der gesamte eingehende Verkehr automatisch blockiert und der gesamte ausgehende Verkehr ist 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 ausdrücklich 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 ufw status

Dies wird eine Ausgabe ähnlich der unten angegebenen anzeigen:

Status: active

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

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

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

sudo ufw status verbose

Um die ufw-Regeln mit ihren Sequenznummern anzuzeigen, können Sie den folgenden Befehl ausführen:

sudo ufw status numbered

Der Output sollte ungefähr so aussehen::

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

Standardmäßig blockiert UFW alle eingehenden Netzwerkpakete und erlaubt alle ausgehenden Pakete. Infolgedessen kann sich niemand mit Ihrem Server verbinden, es sei denn, Sie öffnen explizit einen Dienstport, während alle Anwendungen, die auf Ihrem Server laufen, 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]

Alle ausgehenden Verbindungen sollten als Best Practice blockiert werden, und nur genehmigte ausgehende Verbindungen sollten erlaubt sein. Sie können dies erreichen, indem Sie den folgenden Befehl ausführen:

sudo ufw default deny outgoing
warnung

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

6. Verwalten von UFW-Anwendungsprofilen

Das Anwendungsprofil, das die Dienstbeschreibung und die UFW-Einstellungen enthält, wird im Verzeichnis /etc/ufw/applications.d während der Installation eines Anwendungs-Pakets mit dem Befehl 'apt' erstellt.

Die Syntax für Anwendungsprofile ist einfach und verwendet das .INI file:

[`<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 durch eine kommagetrennte Liste oder einen 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:
AIM
Bonjour
CIFS
DNS
Deluge
IMAP
IMAPS
IPP
KTorrent
Kerberos Admin
Kerberos Full
Kerberos KDC
Kerberos Password
LDAP
LDAPS
LPD
MSN
MSN SSL
Mail submission
NFS
OpenSSH
POP3
POP3S
PeopleNearby
SMTP
SSH
Socks
Telnet
Transmission
Transparent Proxy
VNC
WWW
WWW Cache
WWW Full
WWW Secure
XMPP
Yahoo
qBittorrent
svnserve

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

sudo ufw app info '<name>'

wo <name> eine der Apps ist, die durch den Befehl zur Auflistung der Apps angezeigt werden.

Zum Beispiel können Sie die Details zum Firewall-Profil für WWW Full anzeigen, indem Sie den folgenden Befehl ausführen:

sudo ufw app info 'WWW Full'

Und, das Ergebnis könnte so aussehen:

Profile: WWW Full
Title: Web Server (HTTP,HTTPS)
Description: Web Server (HTTP,HTTPS)

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 die offenen Ports auf Ihrem Server ansehen und nicht sicher sind, zu welchen Anwendungen sie gehören oder was die Anwendung tut.

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:

sudo ufw app update '<name>'

Wenn Sie 'all' 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 Debian-System mit aktivierter IPv6 haben, um zu überprüfen, ob die Unterstützung für IPv6-Adressen auf 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 und schließen Sie die Datei.

  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 werden, 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

Sie werden gewarnt, 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 Verbindungsratenbegrenzung 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

UFW kann so konfiguriert werden, dass bestimmte Ports geöffnet werden, wodurch bestimmte Dienste auf Ihrem Server von außen zugänglich sind. UFW-Regeln können entweder mit

  • 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. Das Folgende ist die allgemeine einfache Syntax für eine Erlauben-Regel:

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 Kommentare zu Ihren Firewall-Regeln hinzufügen, indem Sie den 'comment'-Parameter verwenden, um Ihren Eintrag zu erklären. Um einen Kommentar zu einer bestehenden UFW-Firewall-Regel hinzuzufügen, schreiben Sie einfach dieselbe Regel mit dem comment-Parameter.

In diesem Abschnitt werden wir mit einfachen Syntaxbeispielen für die Verbindung zu den gängigsten Diensten wie HTTP(S) und FTP beginnen. Dann werden wir für erfahrene Administratoren die vollständige Syntaxverwendung von UFW durchgehen.

Offenen FTP-Dienstport (20:21/TCP)

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

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

MySQL-Dienstport (3306/TCP) öffnen

Um eingehende MySQL-Verbindungen zuzulassen, führen Sie einen der folgenden Befehle aus.

  1. Um nach Dienstnamen zuzulassen, führen Sie den folgenden Befehl aus:

    sudo ufw allow mysql
  2. Um nach Portnummer zuzulassen, führen Sie den folgenden Befehl aus (vollständige Syntax):

    sudo ufw allow 3306/tcp

HTTPS-Dienstport öffnen (443)

Auf Debian, um Port 443 zu öffnen und HTTPS-Verbindungen zuzulassen, können Sie einen der folgenden Befehle ausführen.

  1. Um nach Dienstnamen zuzulassen, führen Sie den folgenden Befehl aus:

    sudo ufw allow https
  2. Um nach Portnummer zuzulassen, führen Sie den folgenden Befehl aus (vollständige Syntax):

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

    sudo ufw allow 'WWW Secure'

HTTP-Dienstport öffnen (80)

Auf Debian, um Port 80 zu öffnen und HTTP-Verbindungen zuzulassen, können Sie einen der folgenden Befehle ausführen.

  1. Um nach Portnummer zuzulassen, 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 'WWW'
    tipp

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

    sudo ufw allow 'WWW Full'

Offenes DNS-Dienstport (53)

Wenn Sie einen DNS-Server auf Ihrem Debian-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 Sie den WireGuard-Dienstport (51820/UDP)

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

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

Ö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'

Offene E-Mail-Dienst-Ports

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 or 587 (for TLS) or 465 (for SSL)
POP110
POPS995
IMAP143
IMAP3993

Wenn Sie einen E-Mail-Dienst auf Ihrem Debian-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. Zulassen 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 55100:55200/tcp

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

sudo ufw allow 22,80,443/tcp

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

Sie müssen möglicherweise 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.10.10.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.10.10.100

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

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

sudo ufw allow from 10.10.10.10 to any port 3306

13. Verbindungen von vertrauenswürdigen Subnetzen zulassen

Um den Zugriff auf alle Ports von einer Subnetzadresse wie 10.10.0.0/24 zu gewähren, geben Sie from gefolgt von der Netzwerkadresse ein, die auf die Whitelist gesetzt werden soll. Zum Beispiel könnten Sie Benutzern im Subnetz 10.10.0.0/24 den Zugriff auf den FTP-Dienst gewähren, indem Sie den folgenden Befehl ausführen:

sudo ufw allow from 10.10.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 DIRECTION auf einer bestimmten Schnittstelle angeben. Die Richtung 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 beispielsweise alle neuen eingehenden HTTP-Verbindungen auf ens18 zuzulassen, verwenden Sie:

sudo ufw allow in on ens18 to any port 80 proto tcp

15. Verbindungen leugnen

Wenn Sie die Standardrichtlinie für alle eingehenden Verbindungen nicht geändert haben, wird UFW alle eingehenden Verbindungen blockieren, es sei denn, Sie erlauben sie ausdrücklich. Wenn Sie den Zugriff auf einen bestimmten Port verweigern möchten, verwenden Sie den Befehl deny und optional den Befehl protocol.

sudo ufw deny <port>/<protocol>

Zum Beispiel, nehmen wir an, Sie haben einen HTTP(S)-Webserver, der von überall auf der Welt öffentlich zugänglich ist. Darüber hinaus müssen Sie möglicherweise Verbindungen von einer nicht vertrauenswürdigen IP-Adresse blockieren, wie z.B. 122.133.144.155, die für Cyberangriffe auf Ihren Webserver verwendet wird. Sie können einen der folgenden Befehle verwenden, um alle Verbindungen von einer bestimmten IP-Adresse zu verweigern:

sudo ufw deny from 122.133.144.155

oder

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

Darüber hinaus, wenn Sie Ihre Standardrichtlinie für eingehende Verbindungen ändern möchten, um Verbindungen zu akzeptieren, müssen Sie Ablehnungsregeln für alle Dienste oder IP-Adressen definieren, von denen Sie keine Verbindungen akzeptieren möchten. Es wird dringend empfohlen, den Zugriff auf Ihren SSH-Port (22) beispielsweise nur auf Ihre vertrauenswürdigen IP-Adressen zu beschränken. Sie können den folgenden Befehl verwenden, um eingehende Verbindungen zum SSH-Port zu verhindern:

sudo ufw deny ssh/tcp

16. ICMP/Ping-Anfrage ablehnen

Ping-Anfragen sind standardmäßig in UFW erlaubt. Sie müssen jedoch möglicherweise die ICMP-Anfrage aus Sicherheitsgründen blockieren. Um Ping-Pakete abzulehnen, befolgen Sie die folgenden Schritte:

  1. Bearbeiten Sie die /etc/ufw/before.rules mit Ihrem bevorzugten Editor, wie zum Beispiel nano. 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 und schließen Sie die Datei.

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

    sudo ufw reload

17. Regeln löschen

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

1. Regelnummer

Es ist einfacher, UFW-Regeln nach Regelnummer zu löschen, besonders wenn man ein Anfänger ist. Um eine Regel nach Nummer zu löschen, folgen Sie den nächsten 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

    Sie sollten eine Ausgabe sehen, die der folgenden ähnlich ist:

    Status: active
    To Action From
    ------------
    [ 1] 22/tcp LIMIT IN Anywhere
    [ 2] 2222 ALLOW IN Anywhere
    [ 3] 21/tcp ALLOW IN Anywhere
    [ 4] 20/tcp ALLOW IN Anywhere
    [ 5] 3306 ALLOW IN Anywhere
    [ 6] 3306/tcp ALLOW IN Anywhere
    [ 7] 443/tcp ALLOW IN Anywhere
    [ 8] WWW ALLOW IN Anywhere
    [ 9] WWW Secure ALLOW IN Anywhere
    [10] WWW Full ALLOW IN Anywhere
    [11] 80/tcp ALLOW IN Anywhere
    [12] 51820/udp ALLOW IN Anywhere # WireGuard VPN server
    [13] 1194/udp ALLOW IN Anywhere # OpenVPN server
    [14] 53 ALLOW IN Anywhere # DNS server
    [15] DNS ALLOW IN Anywhere # DNS server
    [16] 25 ALLOW IN Anywhere # allow smtp connections
    [17] 587 ALLOW IN Anywhere # allow smtp tls connections
    [18] 465 ALLOW IN Anywhere # allow smtp ssl connections
    [19] 995 ALLOW IN Anywhere # allow pops connections
    [20] 110 ALLOW IN Anywhere # allow pop3 connections
    [21] 143 ALLOW IN Anywhere # allow imap connections
    [22] 993 ALLOW IN Anywhere # allow imap3 connections
    [23] 55100:55200/tcp ALLOW IN Anywhere
    [24] 22,80,443/tcp ALLOW IN Anywhere
    [25] Anywhere ALLOW IN 10.10.10.100
    [26] 3306 ALLOW IN 10.10.10.10
    [27] 20:21/tcp ALLOW IN 10.10.0.0/24
    [28] Anywhere DENY IN 122.133.144.155
    [29] 80,443/tcp DENY IN 122.133.144.155
    [30] 22/tcp (v6) LIMIT IN Anywhere (v6)
    [31] 2222 (v6) ALLOW IN Anywhere (v6)
    [32] 21/tcp (v6) ALLOW IN Anywhere (v6)
    [33] 20/tcp (v6) ALLOW IN Anywhere (v6)
    [34] 3306 (v6) ALLOW IN Anywhere (v6)
    [35] 3306/tcp (v6) ALLOW IN Anywhere (v6)
    [36] 443/tcp (v6) ALLOW IN Anywhere (v6)
    [37] WWW (v6) ALLOW IN Anywhere (v6)
    [38] WWW Secure (v6) ALLOW IN Anywhere (v6)
    [39] WWW Full (v6) ALLOW IN Anywhere (v6)
    [40] 80/tcp (v6) ALLOW IN Anywhere (v6)
    [41] 51820/udp (v6) ALLOW IN Anywhere (v6) # WireGuard VPN server
    [42] 1194/udp (v6) ALLOW IN Anywhere (v6) # OpenVPN server
    [43] 53 (v6) ALLOW IN Anywhere (v6) # DNS server
    [44] DNS (v6) ALLOW IN Anywhere (v6) # DNS server
    [45] 25 (v6) ALLOW IN Anywhere (v6) # allow smtp connections
    [46] 587 (v6) ALLOW IN Anywhere (v6) # allow smtp tls connections
    [47] 465 (v6) ALLOW IN Anywhere (v6) # allow smtp ssl connections
    [48] 995 (v6) ALLOW IN Anywhere (v6) # allow pops connections
    [49] 110 (v6) ALLOW IN Anywhere (v6) # allow pop3 connections
    [50] 143 (v6) ALLOW IN Anywhere (v6) # allow imap connections
    [51] 993 (v6) ALLOW IN Anywhere (v6) # allow imap3 connections
    [52] 55100:55200/tcp (v6) ALLOW IN Anywhere (v6)
    [53] 22,80,443/tcp (v6) ALLOW IN Anywhere (v6)
  • Nach dem Anzeigen der nummerierten Regel-Liste, um die Regel zu löschen, wie zum Beispiel die Nummer 24, führen Sie den folgenden Befehl aus:

    sudo ufw delete 24

    Der Ausgang sollte ungefähr so aussehen:

    Deleting:
    allow 22,80,443/tcp
    Proceed with operation (y|n)? y
    Rule deleted

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

2. Festlegung 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

Wenn Sie UFW stoppen und alle Regeln aus irgendeinem Grund deaktivieren müssen, verwenden Sie den folgenden Befehl:

sudo ufw disable

Der Ausgang sollte ungefähr so aussehen:

Firewall stopped and disabled on system startup

Wenn Sie UFW später wieder aktivieren und alle Regeln aktivieren müssen, führen Sie den folgenden Befehl aus:

sudo ufw enable

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

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 'niedrigen' Protokollierungslevel in die Datei /var/log/ufw.log protokolliert. Ein höheres Protokollierungsniveau könnte erforderlich sein. Es gibt zahlreiche Protokollierungsstufen zur Auswahl, und Sie können Ihre bevorzugte Option basierend darauf auswä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 Medium ohne Versuche/Rate-Limiting und alle Pakete mit Versuchslimitierung
  • Vollständig: 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. SSH, zu aktivieren, verwenden Sie den Befehl.

sudo ufw allow log 22/tcp

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

sudo ufw logging off
warnung

Über medium-Loglevel werden große Mengen an Protokolldaten erzeugt, die schnell Ihre Festplatte füllen. Das Protokollierungsniveau medium kann auf einem stark frequentierten System eine große Menge an Protokollausgaben erzeugen.

20. Testen der UFW-Regeln

Um Ihre UFW-Regeln zu testen, verwenden Sie die Option '--dry-run'. Es ist eine nützliche Alternative, wenn man an den Firewall-Einstellungen herumtüftelt. Wenn Sie den folgenden Befehl ausführen, sehen Sie ein Beispiel für die Änderungen, die vorgenommen worden wären, wenn sie nicht verarbeitet worden wären:

sudo ufw --dry-run enable

Ist Debian standardmäßig sicher?

Ja. Das Debian-Projekt verwaltet die Sicherheit, indem es Informationen der Öffentlichkeit zugänglich macht. Auch das Debian-Sicherheitsteam unterstützt den stabilen Branch.

Debian-Sicherheitsmeldungen entsprechen dem Vokabular der Common Vulnerabilities and Exposures und werden am selben Tag veröffentlicht, an dem eine Schwachstelle öffentlich bekannt gegeben wird.

Das Debian-Projekt bietet Anleitungen und Werkzeuge zur Härtung eines Debian-Systems an. Sie können Ihr Debian-System entweder automatisch oder manuell mit einer Vielzahl von Werkzeugen absichern. Standardmäßig wird AppArmor, ein Sicherheitsmodul des Linux-Kernels, das es dem Administrator ermöglicht, die Fähigkeiten von Programmen mithilfe von programmbezogenen Profilen zu beschränken, unterstützt und aktiviert. Debian enthält auch eine optionale Hardening-Hülle. Obwohl es nicht standardmäßig alle seine Software absichert, zielt es darauf ab, in so vielen Anwendungen wie möglich Absicherungsoptionen einzuschließen.

Wie oben erwähnt, wird Debian mit der Uncomplicated Firewall vorinstalliert geliefert. Wenn Sie UFW aktivieren, blockiert es standardmäßig alle eingehenden Verbindungen, um den Server vor Cyberangriffen zu schützen.

Braucht Debian eine Firewall?

Ja. Tatsächlich benötigen nicht nur ein Debian-Server, sondern auch alle Komponenten eines IT-Systems, die über das Internet öffentlich zugänglich sind, wie Router, Switches, Server, PCs, mobile Geräte und IoT-Geräte, einen Firewall-Schutz gegen Cyber-Bedrohungen. Mit der steigenden Tendenz von Cyberangriffen auf die IT-Welt und den jährlichen Kosten in Millionenhöhe war noch nie ein besserer Zeitpunkt, eine effektive Firewall in Ihrem Netzwerk zu implementieren.Die Hauptgründe für die Implementierung einer Firewall zum Schutz Ihres Debian-Systems sind unten aufgeführt:

  1. Eine starke Firewall kann sicheren Fernzugriff auf Ihr System über einen VPN-Dienst wie OpenVPN oder WireGuard ermöglichen.

    info

    Sie finden weitere Informationen über sicheren Fernzugriff im [Wie man Remote-Mitarbeiter vor potenziellen Cyber-Bedrohungen schützt?].Artikel (https://www.zenarmor.com/docs/network-security-tutorials/how-to-keep-remote-employees-safe-from-potential-cyber-threats) geschrieben von Sunny Valley Networks.

  2. Eine Firewall kann die Internetbandbreitennutzung zur Effizienzbegrenzung einschränken. Es kann Netzwerkadministratoren ermöglichen, die Netzwerkbandbreite für nicht geschäftlichen Verkehr einzuschränken, indem Bandbreite für wichtigeren Geschäftstraffic reserviert wird.

  3. Eine effektive Firewall kann Ihr Netzwerk vor bösartigem Datenverkehr, wie Malware und Phishing-Angriffen, schützen.

  4. Eine Firewall ist die erste Verteidigungslinie gegen Hacker und andere unbefugte Zugriffsversuche. Ohne eine Firewall am Netzwerkperimeter sind Ihre Daten und wertvollen Vermögenswerte einem großen Risiko ausgesetzt.

  5. Eine Firewall kann verhindern, dass Ihre Benutzer auf illegale und schädliche Websites zugreifen, wie z.B. Phishing-Seiten.

Welche Firewalls können auf Debian installiert werden?

Debian hat eine integrierte Linux-Firewall-Anwendung, die iptables heißt. Im Allgemeinen wird es als hostbasierte Firewall implementiert, um den Debian-Server gegen Cyberangriffe zu schützen. Es kann auch als Netzwerkfirewall zwischen dem LAN und einem nicht vertrauenswürdigen externen Netzwerk konfiguriert werden, um die Vermögenswerte im internen Netzwerk zu schützen. Sie können die folgenden Firewall-Lösungen problemlos auf Ihrem Debian-Server installieren und konfigurieren:

  1. Unkomplizierte Firewall (UFW): Uncomplicated Firewall (UFW) ist eine einfach zu bedienende Anwendung zur Verwaltung einer Netfilter-Firewall. Es hat eine Befehlszeilenschnittstelle mit ein paar einfachen Befehlen und nutzt iptables zur Konfiguration.

  2. Graphische Unkomplizierte Firewall (GUFW): Gufw ist eine grafische Benutzeroberflächen (GUI)-Erweiterung, die es einfacher macht, UFW an Ihre spezifischen Anforderungen anzupassen. Die Gufw-Firewall kann unabhängig von Ihrer Linux-Distribution als eigenständiges Tool heruntergeladen werden. (Debian, Mint, etc.).

  3. FirewalID: Firewalld ist eine dynamisch verwaltete Firewall, die Sicherheitszonen unterstützt, die das Vertrauensniveau für Netzwerkschnittstellen definieren. Es unterstützt IPv4/v6-Firewall-Einstellungen sowie IP-Sets und Ethernet-Brücken. Es bietet auch eine Schnittstelle, über die Dienste direkt Firewall-Regeln hinzufügen können.

  4. Shorewall: Shorewall ist ein Open-Source-Sicherheitswerkzeug, das auf Netfilter aufsetzt. Shorewall bietet eine Schnittstelle zur Konfiguration Ihrer aktuellen Sicherheitsfunktionen. Es umfasst sechs Pakete, darunter die Kernfunktionalität, "lite" und voll funktionsfähige Verwaltung, IPv4- und IPv6-Firewall-Pakete sowie ein Ereignisreaktionspaket.

  5. Firewall: Vuurmuur ist ein Firewall-Konfigurationstool und -Manager für Linux, das auf iptables basiert. Es bietet eine grafische Benutzeroberfläche, die sowohl einfache als auch komplexe Einstellungen ermöglicht.

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

iptables und sein Frontend-Programm UFW bieten eine leistungsstarke L4-Paketfilterlösung, die einfach zu bedienen ist. Infolgedessen werden sie häufig als hostbasierte Firewall verwendet. Wenn Sie Ihre Debian-Firewall jedoch als Netzwerkfirewall zwischen Ihren internen und externen Netzwerken einrichten, wird sie Ihre wertvollen Vermögenswerte nicht vor fortschrittlichen Cyberangriffen schützen können. Darüber hinaus zielen Hacker nun nicht nur auf große Unternehmen ab, sondern auch auf kleine Unternehmen (KMUs) und sogar auf einzelne Verbraucher. Traditionelle L4-Paketfilter-Firewalls waren nicht in der Lage, mit den neuen Cyber-Bedrohungen umzugehen. Infolgedessen sind Next-Generation-Firewalls für jedes Unternehmen, einschließlich Heimnutzern, von entscheidender Bedeutung.

Laut Gartner ist ein NGF:

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 einfach die Funktionen der nächsten Firewall-Generation, wie Webinhalts- und Anwendungsfilterung, implementieren, indem Sie Zenarmor auf Ihrem Debian-Server installieren und konfigurieren. Zenarmor bietet hochmoderne, fortschrittliche Firewall-Funktionen, die derzeit in Open-Source-Firewalls nicht verfügbar sind. Zenarmor basiert auf einer sehr leichten und leistungsstarken Anwendungsschicht/L7-Paketinspektionstechnologie. Es bietet kostenlosen Zugang zu einer Vielzahl von Netzwerk-Sicherheitsfunktionen auf Unternehmensebene.

Die Hauptfunktionen des Zenarmor sind unten aufgeführt:

  • Webfilterung

  • Anwendungssteuerung

  • Benutzerfreundliches Web- und Anwendungskategorisierungssystem mit einer umfangreichen und aktuellen Datenbank.

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

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

  • Cloud Threat Intelligence

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

  • Umfangreiche Berichterstattung und Analysen, die Netzwerktransparenz bieten.

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

Um Ihr Netzwerk hinter Zenarmor zu verteidigen, können Sie den folgenden Befehl auf Ihrem Debian-Server ausführen:

curl https://updates.sunnyvalley.io/getzenarmor | sh
Starten Sie noch heute kostenlos mit Zenarmor