Zum Inhalt

Pi-hole mit der ufw-Firewall absichern

ufw ist die Abkürzung für uncomplicated firewall und stellt eine einfache Möglichkeit dar die Linux-Firewall iptables zu steuern. Das Tool ist ein kommandozeilenbasiertes Frontend für die sehr mächtigen iptables.

Euer Pi-hole-Server lässt sich mit der ufw-Firewall absichern, sodass nur noch der Traffic rein und raus darf, den ihr explizit erlaubt.

Die Installation geht sehr einfach, da ufw in den Paketquellen enthalten ist.

sudo apt install ufw

Standardmäßig ist neben IPv4 auch IPv6 aktiviert. In den meisten Fällen wird man aber IPv6 nicht benötigen und ihr könnt es über die Konfigurationsdatei deaktivieren.

sudo nano /etc/default/ufw

Dort sucht in nach der Zeile mit dem IPv6-Eintrag und ändert den ab.

IPV6=no

SSH-Port 22 zulassen

Bevor ihr die Firewall anschalten, solltet ihr sicherstellen, dass mindestens der SSH-Port 22 durchgelassen wird. Wenn ihr den blockt, dann ist eine Remote-Login nicht mehr möglich und ihr müsst den Raspberry Pi an einen Bildschirm anschließen für die Anmeldung.

Mit diesem Befehlt lasst ihr alle Verbindungen zum Port 22 zu.

sudo ufw allow 22

Möchtet ihr nur einen Zugriff aus eurem eigenen Netzwerk erlauben, dann kann die Regel weiter eingeschränkt werden. Es wird das Sub-Netz angegeben, d.h. alle IP-Adressen zwischen 192.168.178.1 bis 192.168.178.255 dürfen auf den Port 22 zugreifen.

sudo ufw allow from 192.168.178.0/24 to any port 22

Standardregel

Eine weitere Standardregel besagt, dass jede eingehende Verbindung abgelehnt wird und jede ausgehende Verbindung erlaubt wird.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Die Regel könnt ihr nach erfolgreicher erster Konfiguration jederzeit anpassen.

Pi-hole - Ports erlauben

Für den reibungslosen Betrieb von Pi-hole müsst ihr die folgenden Ports zulassen.

sudo ufw allow 80/tcp
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 67/tcp
sudo ufw allow 67/udp

Habt ihr noch unbound installiert, dann ist der Port auch noch zu erlauben. 👉 Pi-hole mit unbound – Werbeblocker und Kontrolle über die DNS-Anfragen erhalten

Das wird nicht benötigt. Siehe Kommentar von Jim.

sudo ufw allow 5335/tcp

Ports blockieren

Das Blockieren von Ports ist bei ufw mit einem kleinen Befehl sofort erledigt. In dem Beispiel blocken wir den SMTP-Port 25.

sudo ufw deny 25

ufw auf dem Pi-hole-Server starten

Nach der Konfiguration der Regeln kann ufw gestartet werden

sudo ufw enable

Die Regeln lassen sich mit auflisten

sudo ufw status

Habt ihr viele Regeln definiert, ist die Ausgabe im Terminal schnell unübersichtlich. Die Ausgabe lässt sich dann problemlos auch in eine txt-Datei schreiben und mit einem Editor auswerten.

sudo ufw status numbered > ufw.txt

ufw-Befehle

ufw Statusabfrage

sudo ufw status

ufw starten

sudo ufw enable

ufw Reload

sudo ufw reload

ufw deaktivieren

sudo ufw disable

ufw - Auf Werkseinstellungen zurücksetzten

sudo ufw reset

ufw Regeln löschen

sudo ufw status numbered

Die Ausgabe sieht beispielhaft so aus:

Status: active

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

Möchte man nun die Regel 2 für SSH auf IPv6 löschen ist die Zeilennummer anzugeben.

sudo ufw delete 2

ufw Logging

Das Logging von ufw lässt sich anschalten

sudo ufw logging on

abschalten

sudo ufw logging off

Die Logs sind zu finden unter /var/log

Das Protokoll-Level lässt sich festlegen mit

sudo ufw logging STUFE

Es gibt vier unterschiedliche Levels:

  1. low
  2. medium
  3. high
  4. full

Gib mir gerne einen Kaffee ☕ aus ❗️

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.

Donation via PayPalDonation via LiberaPay

Donation via Bitcoin
Bitcoin Address: bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj

Source