Wie man die Ubuntu-Firewall benutzt

Was ist UFW
Die meisten Systemadministratoren konfigurieren nicht gerne Netzwerksicherheitsanwendungen wie Firewalls aus der Ferne. Diese Anwendungen blockieren standardmäßig den Zugriff von außen für alle Anwendungen, außer für diejenigen, die ausdrücklich als erlaubt angegeben sind.
Wenn ein Fehler auftritt, kann der Fernzugriff auf das Netzwerk verloren gehen. Wir haben diesen Leitfaden speziell erstellt, damit Sie das korrekte Verfahren zur Einrichtung einer standardmäßigen UFW-Firewall auf dem Ubuntu Linux-Betriebssystem erneut sehen können.
Wenn man tiefer gräbt, ist UFW eigentlich keine Firewall. Es handelt sich dabei einfach um ein praktisches Hilfsprogramm, mit dem man den in den Linux-Kernel ab 2.4 eingebauten netfilter konfigurieren kann. Es gibt keine Möglichkeit, netfilter direkt zu konfigurieren, daher wurde das iptables Hilfsprogramm geschrieben.
Nun, UFW hat es möglich gemacht, diesen Prozess weiter zu vereinfachen und es so möglich zu machen, schnell Regeln zu verwalten, ohne Konfigurationsdateien schreiben oder das iptables Handbuch sorgfältig lesen zu müssen. Dies ist das, was tatsächlich in dem Akronym UFW codiert ist: Unkomplizierte Firewall.
Warum ist UFW standardmäßig deaktiviert
Sobald das Ubuntu-Betriebssystem auf einem Server installiert ist, gibt es standardmäßig keinen einzigen offenen Port, der durch eine Firewall geschützt werden sollte. Daher bleibt UFW auch nach der Installation inaktiv, bis der Benutzer den Schutz konfigurieren muss. Wichtig ist, vor der Aktivierung der Firewall sicherzustellen, dass Sie sich dadurch nicht den Weg zur Konfiguration des Servers abschneiden.
Wenn Sie beispielsweise den Server über eine SSH-Verbindung verwalten, müssen Sie vor der Aktivierung der Firewall ausdrücklich angeben, dass der OpenSSH-Daemon Port 22 (oder einen anderen, wenn konfiguriert) verwenden darf und Verbindungen von außen akzeptieren sollte, anstatt sie zu verwerfen, wie es für alle externen Verbindungen standardmäßig implementiert ist. Dazu müssen Sie entweder ein fertiges OpenSSH-Anwendungsprofil verwenden oder eine eigene Regel erstellen.
UFW-Status
Zunächst stellen wir sicher, dass UFW im Betriebssystem vorhanden ist. Dazu führen wir den Befehl aus:
sudo ufw status verbose
Wenn Sie die folgende Antwort erhalten, bedeutet dies, dass UFW auf dem Betriebssystem installiert ist, sich aber, wie oben erwähnt, in einem inaktiven Zustand befindet:
Status: inaktiv
Andernfalls aktualisieren Sie den Paketcache und installieren Sie UFW mit dem Standardpacker-Manager:
sudo apt update && sudo apt -y install ufw
Firewall aktivieren
Achtung! Stellen Sie sicher, dass Sie die Serversteuerung durch Aktivierung eines Anwendungsprofils (zum Beispiel OpenSSH) oder durch Aktivierung einer benutzerdefinierten Regel beibehalten, bevor Sie den folgenden Befehl ausführen.
sudo ufw enable
Überprüfen wir den Status von UFW erneut, indem wir den folgenden Befehl aufrufen:
sudo ufw status verbose
Firewall deaktivieren
Die Firewall kann mit dem Befehl "disable" ausgeschaltet werden. Bitte beachten Sie, dass diese Aktion früher erstellte Regeln in keiner Weise beeinflusst. Sie werden alle weiterhin funktionieren, sobald die Firewall wieder eingeschaltet wird:
sudo ufw disable
Protokollierung aktivieren
Die zweitwichtigste Funktion der Firewall ist die Protokollierung. Mit ihrer Hilfe können Sie sowohl überprüfen, dass UFW korrekt funktioniert, als auch Anzeichen von Cyberattacken erkennen. Um die Protokollierungsfunktion zu aktivieren, führen Sie den folgenden Befehl aus:
sudo ufw logging on
Protokollierung aktiviert
tail -f /var/log/ufw.log
… Jul 10 05:54:24 ubuntu22044 kernel: [56235.006445] [UFW BLOCK] IN=enp134s0f1 OUT= M AC=ac:1f:6b:f5:60:43:02:01:01:01:01:02:08:00 SRC=152.32.129.154 DST=37.230.134.118 LEN=60 TOS=0x00 PREC=0x00 TTL=41 ID=5377 DF PROTO=TCP SPT=47633 DPT=6606 WINDOW=29200 RES=0x00 SYN URGP=0 …
Sie können auch syslog und kern.log überprüfen:
grep -i ufw /var/log/syslog
grep -i ufw /var/log/kern.log
In beiden Fällen wird das Ergebnis das gleiche sein. Um die Menge der im Protokoll aufgezeichneten Informationen zu erhöhen, ändern Sie deren Ebene. Verfügbare Ebenen: niedrig (standardmäßig) / mittel / hoch / voll:
sudo ufw logging full
Protokollierung deaktivieren
Um die Protokollierung zu deaktivieren, ist die Stufe "off" vorgesehen:
sudo ufw logging off
Regelverwaltung
Zugriff von spezifischen IPs
Bei der Erstellung von Regeln sind zwei Szenarien am häufigsten. Im ersten Fall benötigt der Systemadministrator, dass nur Benutzer, die eine bestimmte IP-Adresse oder eine IP-Adresse aus einem bestimmten Bereich haben, eine Verbindung zum Server herstellen können. Verbindungsversuche von allen anderen Adressen sollten blockiert werden. Dies ist am meisten anwendbar für nicht öffentliche oder Unternehmensdienste:
sudo ufw allow from [ip_adresse]
sudo ufw allow from [ip_adresse/subnetzmaske]
Zugriff von spezifischen IPs ablehnen
Das zweite Szenario wird für öffentliche Dienste relevant sein, deren Server gezwungen sind, alle eingehenden Verbindungen zu akzeptieren und zu verarbeiten. Dies macht sie anfällig für Brute-Force-Angriffe und Denial-of-Service (DoS) Angriffe. In diesem Fall helfen Regeln, die das Herstellen einer Verbindung von einer bestimmten IP-Adresse oder einer IP-Adresse aus einem bestimmten Bereich verbieten:
sudo ufw deny from [ip_adresse]
sudo ufw deny from [ip_adresse/subnetzmaske]
Wenn Ihr Server nicht zum Versenden von E-Mails verwendet wird, wäre es logisch, jeglichen ausgehenden SMTP-Verkehr zu blockieren, um potenziellen Spam zu verhindern. Sie können dies mit dem folgenden Befehl tun:
sudo ufw deny out 25
Bestehende Regeln löschen
Der bequemste Weg, Regeln zu löschen, ist es, ihre fortlaufende Zahl zu verwenden. Um herauszufinden, welche Nummer welcher Firewallregel entspricht, führen Sie diesen Befehl aus:
sudo ufw status numbered
Status: aktiv To Action From -- ------ ---- [ 1] OpenSSH ALLOW IN Anywhere [ 2] OpenSSH (v6) ALLOW IN Anywhere (v6)
Nun können Sie eine Regel löschen, indem Sie ihre Nummer in den Befehl einfügen:
sudo ufw delete [regel_nummer]
Anwendungsprofile
Anwendungsprofile sind fertige Regelsätze, die das Leben eines Systemadministrators vereinfachen. Sie berücksichtigen sofort standardmäßige Verbindungsports und ermöglichen es, mehrere Regeln mit einem Befehl anzuwenden.
Verfügbare Profile auflisten
Um zu prüfen, welche Profile zur Aktivierung zur Verfügung stehen, führen Sie den Befehl aus:
sudo ufw app list
Verfügbare Anwendungen: OpenSSH
Anwendungsprofil aktivieren
Standardmäßig wird Ubuntu immer ein OpenSSH-Profil zur Verfügung haben, das SSH-Verkehr durch den Standardport 22 passieren lässt. Um sicherzustellen, dass Sie nach der Aktivierung von UFW nicht die Kontrolle über SSH verlieren, führen Sie den folgenden Befehl aus:
sudo ufw allow OpenSSH
Jetzt können Sie UFW aktivieren und überprüfen, ob die aktivierbare Regel für OpenSSH funktioniert:
sudo ufw status verbose
Status: aktiv Logging: an (niedrig) Default: Verweigern (eingehend), Erlauben (ausgehend), Deaktiviert (geroutet) Neue Profile: überspringen To Action From -- ------ ---- 22/tcp (OpenSSH) ALLOW IN Anywhere 22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
Anwendungsprofil deaktivieren
Sie können eine aktivierte Regel mit dem Befehl "delete" löschen. Seien Sie äußerst vorsichtig mit diesem Befehl und deaktivieren Sie nicht das OpenSSH-Profil, denn wenn die Firewall aktiviert ist und es keine Regel gibt, die OpenSSH erlaubt, verlieren Sie den remote Zugriff auf den Server:
sudo ufw delete allow [app_profil_name]
IP-Blockliste
Es ist kein Geheimnis, dass das Internet voll von Geräten ist, die programmiert sind, um automatisch zu scannen und zu versuchen, unbefugten Zugang zu erlangen. Es wäre klug, alle Adressen zu blockieren, die dabei gesehen werden. Das IPsum-Projekt unterhält ein Register von schädlichen IP-Adressen auf Basis von Daten aus 30 öffentlich zugänglichen Diensten, die regelmäßig Listen solcher Adressen veröffentlichen. Dieses Register wird eine ausgezeichnete Datenquelle für UFW sein.
Beginnen Sie mit der Installation des ipset-Paketes:
sudo apt -y install ipset
Jetzt müssen Sie eine Sicherungskopie der vorhandenen After.init-Konfigurationsdatei machen:
sudo cp /etc/ufw/after.init /etc/ufw/after.init.orig
Klonen Sie das Repository mit vorgefertigten Konfigurationsdateien:
git clone https://github.com/poddmo/ufw-blocklist.git
Wechseln Sie das Arbeitsverzeichnis:
cd ufw-blocklist
Kopieren Sie die Konfigurationsdatei und ersetzen Sie sie:
sudo cp after.init /etc/ufw/after.init
Kopieren Sie die Cron-Job-Datei:
sudo cp ufw-blocklist-ipsum /etc/cron.daily/ufw-blocklist-ipsum
Ändern Sie den Besitzer dieser beiden Dateien auf den Superuser Root:
sudo chown root:root /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum
Setzen Sie die Berechtigungen auf 750 (rwxr-x—) für beide Dateien:
sudo chmod 750 /etc/ufw/after.init /etc/cron.daily/ufw-blocklist-ipsum
Laden Sie eine grundlegende Blockliste herunter:
curl -sS -f --compressed -o ipsum.4.txt 'https://raw.githubusercontent.com/stamparm/ipsum/master/levels/4.txt'
Setzen Sie für die grundlegende Blockliste Berechtigungen auf 640 (rw-r-----). Sie wird direkt im /etc-Verzeichnis gespeichert, so dass das Ändern der Berechtigungen eine vernünftige Vorsichtsmaßnahme gegen Manipulationen an dieser Liste darstellt:
sudo chmod 640 ipsum.4.txt
Es ist an der Zeit, die Liste in das /etc-Verzeichnis zu legen:
sudo cp ipsum.4.txt /etc/ipsum.4.txt
Lassen Sie uns das initiale Skript starten:
sudo /etc/ufw/after.init start
Der folgende Befehl hilft, die aktuelle Anzahl der Einträge in der Blockliste anzuzeigen:
sudo ipset list ufw-blocklist-ipsum -terse | grep 'Number of entries'
Zum Schluss, stellen Sie sicher, dass die Liste angenommen wird und UFW korrekt funktioniert:
sudo /etc/ufw/after.init status
Name: ufw-blocklist-ipsum Typ: hash:net Überarbeitung: 7 Header: Familieneigentum inet hashsize 2048 maxelem 65536 bucketsize 12 initval 0x5822a4bb Größe im Speicher: 186912 Referenzen: 3 Anzahl der Einträge: 6744 0 0 ufw-blocklist-input all -- * * 0.0.0.0/0 0.0.0.0/0 match- set ufw-blocklist-ipsum src 0 0 ufw-blocklist-forward all -- * * 0.0.0.0/0 0.0.0.0/0 match- set ufw-blocklist-ipsum dst 0 0 ufw-blocklist-output all -- * * 0.0.0.0/0 0.0.0.0/0 match- set ufw-blocklist-ipsum dst
Siehe auch:
Aktualisiert: 28.03.2025
Veröffentlicht: 12.07.2024