UFW – Inbetriebnahme und Regeldefinition

Firewalls schützen Netzwerke oder Geräte vor unerwünschten und schädlichen Zugriffen von außen, indem sie den ein- und ausgehenden Datenverkehr (basierend auf vordefinierten Regeln) überwachen und filtern.
Solche Regeln lassen sich unter Linux u.a. mit dem Tool iptables erstellen. Aufgrund der hohen Einstiegshürde dieses Tools ist ein Frontend erschaffen worden, welches sich ufw (uncomplicated firwall) nennt. Im folgenden möchte ich auf dessen Funktionsweise und die gängigsten Befehle eingehen.

Installation und Inbetriebnahme

ufw sollte bereits von Haus aus auf jeder gängigen Linux-Distribution vorab installiert sein. Falls dem nicht so ist, kann dies hiermit nachgeholt werden:

### Debian/Ubuntu
sudo apt install ufw

### CentOS/RHEL/Fedora
sudo dnf install ufw

### Arch
sudo pacman -S ufw

### openSUSE
sudo zypper install ufw

Damit wäre ufw bereits installiert und einsatzbereit!
Ein- und Ausschalten lässt sich die Firewall mit ufw folgendermaßen.

### UFW aktivieren
sudo ufw enable

### UFW deaktivieren
sudo ufw disable

Hinweis:
Falls eine oder mehrere SSH-Verbindungen zur Zielmaschine bestehen, sollte die Firewall noch nicht eingeschaltet werden, da mit Abbrüchen der Verbindung zu rechnen ist. Zuvor sollten die entsprechenden Ausnahmen für z.B. SSH hinzugefügt werden!
Den Status der Firewall fragen wir mit diesem Befehl ab:

sudo ufw status

Regeln hinzufügen und entfernen

Hinweis:
Regel-Definitionen können auch erstellt werden wenn die Firewall deaktiviert ist.

Wir können eingehende Regeln auf einen bestimmten Port über das TCP-Protokoll zulassen …

sudo ufw allow 22/tcp

… oder blockieren:

sudo ufw deny 22/tcp

Neben dem TCP-Protokoll können wir auch das UDP-Prokokoll angeben:

sudo ufw allow 53/udp

Sofern im Befehl keine explizite Richtung angegeben wird (wie es im obigen Beispiel “ufw allow 22/tcp” der Fall ist), bezieht sich die Regel nur auf eingehenden Datenverkehr.
Die Richtung kann aber optional noch angegeben werden:

### Optionale Angabe des Wortes 'in' für eingehenden Datenverkehr
sudo ufw allow in 22/tcp

Neben eingehenden Datenverkehr, lässt sich auch ausgehender Datenverkehr regulieren:

sudo ufw allow out 22/tcp

Vertrauen wir einer IP-Adresse, können wir hierfür explizit eine Ausnahme definieren:

sudo ufw allow from 192.168.0.2

Hinweis:
Auch in diesem Beispiel gilt; sofern weder das Wort in noch out verwendet wird, handelt es sich um die eingehende Richtung.

Das ganze lässt sich noch etwas feiner regulieren, indem wir der Adresse von eben lediglich Zugang über Port 80 erlauben:

sudo ufw allow from 192.168.0.2 to any port 80

to any bedeutet in diesem Kontext, dass die Regel für jeden Zielhost gilt. Auch hier können weitere Anpassungen vorgenommen werden:

sudo ufw allow from 192.168.0.2 to 10.0.0.5 port 80

In diesem Beispiel würde sämtlicher eingehender Datenverkehr von der IP-Adresse 192.168.0.2 über Port 80 auf die IP-Adresse 10.0.0.5 zugelassen werden.
Um nun noch einen daraufzusetzen, können wir auch noch das Protokoll mitgeben:

sudo ufw allow proto udp from 192.168.0.2 to 10.0.0.5 port 80

Die Regeln wieder zu löschen gestaltet sich mit ufw leider etwas holprig. Zwar lassen diese sich mit einem Editor aus folgender Datei auslesen (und das auch nur in der iptables schreibweise) …

less /etc/ufw/user.rules

… allerdings nützt uns das nichts, wenn wir das UFW-Frontend zum löschen verwenden möchten. Wir benötigen nämlich die Nummer der zu löschenden Regel und die bekommen wir nur heraus, wenn wir die Firewall einschalten und uns das Regelwerk nummeriert und tabellarisch ausgeben lassen:

### UFW aktivieren
sudo ufw enable

### Regelwerk auflisten
sudo ufw status numbered

Nun haben wir die Möglichkeit uns den entsprechenden Eintrag herauszusuchen und zu löschen:

sudo ufw delete <Regel-Nummer>

Standardrichtlinien festlegen

Neben einzelnen Regeln können wir auch den gesamten ein- oder ausgehenden Datenverkehr erlauben oder unterbinden:

### Verbietet sämtlichen eingehenden Datenverkehr
sudo ufw default deny incoming

### Erlaubt sämtlichen ausgehenden Datenverkehr
sudo ufw default allow outgoing

Sofern nun nicht explizit Ausnahmen hinzugefügt wurden, sollte sämtlicher eingehender Verkehr geblockt und ausgehender Verkehr erlaubt werden.
Nach jeder erfolgten Anpassung der Firewall müssen die Regeln erneut eingelesen werden. Nur so werden sie aktiv (ist lediglich im laufenden Betrieb der Firewall notwendig):

sudo ufw reload

Protokollierung

UFW verfügt über eine Protokollierung die sich aktivieren und deaktivieren lässt:

### UFW-Protokollierung aktivieren
sudo ufw logging on

### UFW-Protokollierung deaktivieren
sudo ufw logging off

Darüber hinaus lässt sich das Protokollierungs-Level anpassen, also wie intensiv geloggt werden soll:

sudo ufw logging medium

Mögliche Stufen sind: off, low, medium, high, full.
Alternativ lässt sich das Log-Level auch über /etc/ufw/ufw.conf und dem Parameter LOGLEVEL einstellen.
Die Log-Datei befindet sich standardmäßig unter /var/log/ufw.log.

Anwendungen verwalten

In UFW ist es möglich, sich Profile zu einzelnen Applikationen anzulegen. Diese Profile werden als einzelne Dateien unter /etc/ufw/applications.d/ hinterlegt:

Wir können uns einen Überblick verschaffen welche Profile derzeit verwendet werden können:

sudo ufw app list

Auch können wir nähere Details zu den Profilen einsehen:

sudo ufw app info openssh

Anstelle des Ports 22/tcp (wie es in der Profildatei von OpenSSH der Fall ist) haben wir nun also auch die Möglichkeit, mit Hilfe des Schlüsselwortes OpenSSH Regeln zu definieren. Folgender Befehl …

sudo allow OpenSSH

… würde (wie es in der Profildatei hinterlegt ist) eingehenden Datenverkehr auf Port 22/tcp zulassen.
/etc/ufw/applications.d/ lässt sich im übrigen auch beliebig um weitere Einträge ergänzen:

Fazit

UFW bietet einen seichten Einstieg in die Thematik der Firewall-Konfiguration unter Linux. Mit nur wenigen und leicht lesbaren Befehlen lassen sich bereits effektive Regeln definieren. Die oben aufgeführten Befehle sollten dabei eine solide Grundlage darstellen.

Bildquellen:
Krieger-Bild von OpenClipart-Vectors auf Pixabay
Firewall-Bild von Clker-Free-Vector-Images auf Pixabay

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen