So konfigurieren Sie die Firewall in Ubuntu 18.04
Eine richtig konfigurierte Firewall ist einer der wichtigsten Aspekte der gesamten Systemsicherheit. Standardmäßig wird Ubuntu mit einem Firewall-Konfigurationstool namens UFW (Uncomplicated Firewall) geliefert.
UFW ist ein benutzerfreundliches Frontend zur Verwaltung von iptables Firewall-Regeln und sein Hauptziel ist es, die Verwaltung von iptables einfacher oder wie der Name schon sagt unkompliziert zu machen. Die Firewall von Ubuntu ist so konzipiert, dass sie eine einfache Möglichkeit bietet, grundlegende Firewall-Aufgaben auszuführen, ohne iptables zu erlernen. Es bietet nicht die volle Leistung der standardmäßigen iptables-Befehle, ist aber weniger komplex.
In diesem Tutorial lernen Sie:
- Was ist UFW und seine Übersicht?
- So installieren Sie UFW und führen eine Statusprüfung durch.
- So verwenden Sie IPv6 mit UFW.
- UFW-Standardrichtlinien.
- Anwendungsprofile.
- Zulassen und Verweigern von Verbindungen.
- Firewall-Protokoll.
- So löschen Sie UFW-Regeln.
- So deaktivieren und setzen Sie UFW zurück.
Ubuntu UFW.
Verwendete Softwareanforderungen und Konventionen
UFW Übersicht
Der Linux-Kernel enthält das Netfilter-Subsystem, das verwendet wird, um das Schicksal des Netzwerkverkehrs zu manipulieren oder zu entscheiden, der zu oder durch Ihren Server geleitet wird. Alle modernen Linux-Firewall-Lösungen verwenden dieses System für die Paketfilterung.
Das Paketfiltersystem des Kernels wäre für Administratoren ohne eine Benutzerbereichsschnittstelle, um es zu verwalten, von geringem Nutzen. Dies ist der Zweck von iptables: Wenn ein Paket Ihren Server erreicht, wird es an das Netfilter-Subsystem zur Annahme, Manipulation oder Ablehnung übergeben, basierend auf den Regeln, die ihm vom Userspace über iptables zur Verfügung gestellt werden. iptables ist also alles, was Sie brauchen, um Ihre Firewall zu verwalten, wenn Sie damit vertraut sind, aber es stehen viele Frontends zur Verfügung, um die Aufgabe zu vereinfachen.
UFW, oder Uncomplicated Firewall, ist ein Frontend für iptables. Sein Hauptziel ist es, die Verwaltung Ihrer Firewall kinderleicht zu machen und eine einfach zu bedienende Oberfläche bereitzustellen. Es wird in der Linux-Community gut unterstützt und ist beliebt – in vielen Distributionen ist es sogar standardmäßig installiert. Als solches ist es eine großartige Möglichkeit, mit der Sicherung Ihres Servers zu beginnen.
Installieren von UFW und Status Check
Die unkomplizierte Firewall sollte standardmäßig in Ubuntu 18.04 installiert sein, aber wenn sie nicht auf Ihrem System installiert ist, können Sie das Paket mit dem folgenden Befehl installieren:
sudo apt-get install ufwSobald die Installation abgeschlossen ist, können Sie den Status von UFW mit dem folgenden Befehl überprüfen:
sudo ufw status verboseubuntu1804@linux:~$ sudo ufw status verbose
[sudo] password for ubuntu1804:
Status: inactive
ubuntu1804@linux:~$
ubuntu1804@linux:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
ubuntu1804@linux:~$
ubuntu1804@linux:~$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
ubuntu1804@linux:~$
IPv6 mit UFW verwenden
Wenn Ihr Server für IPv6 konfiguriert ist, stellen Sie sicher, dass UFW für die Unterstützung von IPv6 konfiguriert ist, damit sowohl Ihre IPv4- als auch Ihre IPv6-Firewallregeln konfiguriert werden. Öffnen Sie dazu die UFW-Konfiguration mit diesem Befehl:
sudo vim /etc/default/ufwStellen Sie dann sicher, dass IPV6 auf Ja eingestellt ist, wie folgt:
IPV6=yesSpeichern und beenden. Starten Sie dann Ihre Firewall mit den folgenden Befehlen neu:
sudo ufw disable
sudo ufw enable
Nun konfiguriert UFW die Firewall gegebenenfalls sowohl für IPv4 als auch für IPv6.
UFW-Standardrichtlinien
Standardmäßig blockiert UFW alle eingehenden Verbindungen und lässt alle ausgehenden Verbindungen zu. Das bedeutet, dass jeder, der versucht, auf Ihren Server zuzugreifen, keine Verbindung herstellen kann, es sei denn, Sie öffnen den Port ausdrücklich, während alle Anwendungen und Dienste, die auf Ihrem Server ausgeführt werden, auf die Außenwelt zugreifen können.
Die Standardrichtlinien sind in der Datei /etc/default/ufw definiert und können mit dem Befehl sudo ufw default <policy> <chain> geändert werden.
sudo ufw default deny outgoingFirewall-Richtlinien sind die Grundlage für die Erstellung detaillierterer und benutzerdefinierter Regeln. In den meisten Fällen sind die anfänglichen UFW-Standardrichtlinien ein guter Ausgangspunkt.
Anwendungsprofile
Wenn Sie ein Paket mit dem apt-Befehl installieren, wird ein Anwendungsprofil zum Verzeichnis /etc/ufw/applications.d hinzugefügt. Das Profil beschreibt den Dienst und enthält UFW-Einstellungen.
Sie können alle auf Ihrem Server verfügbaren Anwendungsprofile mit dem folgenden Befehl auflisten:
sudo ufw app listAbhängig von den Paketen, die auf Ihrem System installiert sind, sieht die Ausgabe in etwa wie folgt aus:
ubuntu1804@linux:~$ sudo ufw app list
[sudo] password for ubuntu1804:
Available applications:
CUPS
OpenSSH
ubuntu1804@linux:~$
Verwenden Sie den folgenden Befehl, um weitere Informationen zu einem bestimmten Profil und den enthaltenen Regeln zu erhalten:
sudo ufw app info ‘<app_name>’ubuntu1804@linux:~$ sudo ufw app info 'OpenSSH'
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.
Port:
22/tcp
Wie Sie in der obigen Ausgabe sehen können, öffnet das OpenSSH-Profil Port 22 über TCP.
Zulassen und Verweigern von Verbindungen
Wenn wir die Firewall aktiviert haben, wird standardmäßig alle eingehenden Verbindungen abgelehnt. Daher müssen Sie die Verbindungen je nach Bedarf zulassen/aktivieren. Die Verbindung kann durch Definieren des Ports, des Dienstnamens oder des Anwendungsprofils geöffnet werden.
sudo ufw allow sshsudo ufw allow httpsudo ufw allow 80/tcpsudo ufw allow 'HTTP'Anstatt den Zugriff auf einzelne Ports zu ermöglichen, ermöglicht uns UFW auch den Zugriff auf Portbereiche.
sudo ufw allow 1000:2000/tcpsudo ufw allow 3000:4000/udpUm den Zugriff auf alle Ports von einem Computer mit IP-Adresse aus zu erlauben oder den Zugriff auf einen bestimmten Port zu erlauben, können Sie die folgenden Befehle ausführen:
sudo ufw allow from 192.168.1.104sudo ufw allow from 192.168.1.104 to any port 22Der Befehl zum Zulassen der Verbindung zu einem Subnetz von IP-Adressen:
sudo ufw allow from 192.168.1.0/24 to any port 3306
Um den Zugriff auf einen bestimmten Port und nur auf eine bestimmte Netzwerkschnittstelle zu erlauben, müssen Sie den folgenden Befehl verwenden:
sudo ufw allow in on eth1 to any port 9992Die Standardrichtlinie für alle eingehenden Verbindungen ist auf "Verweigern" festgelegt, und wenn Sie sie nicht geändert haben, blockiert UFW alle eingehenden Verbindungen, es sei denn, Sie öffnen die Verbindung ausdrücklich.
So verweigern Sie alle Verbindungen aus einem Subnetz und mit einem Port:
sudo ufw deny from 192.168.1.0/24sudo ufw deny from 192.168.1.0/24 to any port 80Firewall-Protokoll
Firewall-Protokolle sind unerlässlich, um Angriffe zu erkennen, Fehler in Ihren Firewall-Regeln zu beheben und ungewöhnliche Aktivitäten in Ihrem Netzwerk zu bemerken. Sie müssen jedoch Protokollierungsregeln in Ihre Firewall aufnehmen, damit sie generiert werden können, und Protokollierungsregeln müssen vor jeder anwendbaren Beendigungsregel stehen.
sudo ufw logging onDas Protokoll befindet sich auch in /var/log/messages, /var/log/syslog und /var/log/kern.log
Löschen von UFW-Regeln
Es gibt zwei verschiedene Möglichkeiten, UFW-Regeln zu löschen, nach Regelnummer und durch Angabe der eigentlichen Regel.
Das Löschen von UFW-Regeln nach Regelnummer ist besonders einfacher, wenn Sie neu bei UFW sind. Um eine Regel nach einer Regelnummer zu löschen, müssen Sie zuerst die Nummer der Regel finden, die Sie löschen möchten, Sie können dies mit dem folgenden Befehl tun:
sudo ufw status numberedubuntu1804@linux:~$ sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] Anywhere ALLOW IN 192.168.1.104
[ 3] 22/tcp (v6) ALLOW IN Anywhere (v6)
Verwenden Sie den folgenden Befehl, um Regel Nummer 2 zu löschen, die Verbindungen zu einem beliebigen Port von der IP-Adresse 192.168.1.104 zulässt:
sudo ufw delete 2ubuntu1804@linux:~$ sudo ufw delete 2
Deleting:
allow from 192.168.1.104
Proceed with operation (y|n)? y
Rule deleted
ubuntu1804@linux:~$
Die zweite Methode besteht darin, eine Regel zu löschen, indem Sie die tatsächliche Regel angeben.
sudo ufw delete allow 22/tcpUFW deaktivieren und zurücksetzen
Wenn Sie aus irgendeinem Grund UFW stoppen und alle Regeln deaktivieren möchten, können Sie Folgendes verwenden:
sudo ufw disableubuntu1804@linux:~$ sudo ufw disable
Firewall stopped and disabled on system startup
ubuntu1804@linux:~$
Durch das Zurücksetzen von UFW wird UFW deaktiviert und alle aktiven Regeln werden gelöscht. Dies ist hilfreich, wenn Sie alle Ihre Änderungen rückgängig machen und neu beginnen möchten. Um UFW zurückzusetzen, verwenden Sie den folgenden Befehl:
sudo ufw resetubuntu1804@linux:~$ sudo ufw reset
Resetting all rules to installed defaults. This may disrupt existing ssh
connections. Proceed with operation (y|n)? y
Backing up 'user.rules' to '/etc/ufw/user.rules.20181213_084801'
Backing up 'before.rules' to '/etc/ufw/before.rules.20181213_084801'
Backing up 'after.rules' to '/etc/ufw/after.rules.20181213_084801'
Backing up 'user6.rules' to '/etc/ufw/user6.rules.20181213_084801'
Backing up 'before6.rules' to '/etc/ufw/before6.rules.20181213_084801'
Backing up 'after6.rules' to '/etc/ufw/after6.rules.20181213_084801'
ubuntu1804@linux:~$
Schlussfolgerung
UFW wurde entwickelt, um die Konfiguration der iptables-Firewall zu vereinfachen und bietet eine benutzerfreundliche Möglichkeit, eine hostbasierte IPv4- oder IPv6-Firewall zu erstellen. Es gibt viele andere Firewall-Dienstprogramme und einige, die einfacher sein könnten, aber UFW ist ein gutes Lernwerkzeug, und sei es nur, weil es einen Teil der zugrunde liegenden Netzfilterstruktur offenlegt und weil es in so vielen Systemen vorhanden ist.
