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:
- low
- medium
- high
- full
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️