Dies ist eine alte Version des Dokuments!
Raspberry 4 mit Pi-Hole und DOH über FFMuc nutzen
In diesem Artikel beschreibt fritz_muc wie man mit einem Raspberry PI 4 mit Pi_Hole und FFMUC nutzen kann.
Im Tutorial benutztes Equipment, Stand Oktober 2019
- Fritz!Box 7490 mit Fritz!OS 7.12
- Raspberry 4 mit 4GB RAM und Raspbian Buster
Es wird in den weiteren Schritten davon ausgegangen, dass auf dem Pi bereits ein funktionierendes Betriebssystem installiert ist. Ebenso benötigt der Pi eine feste (statische) IPv4 im Heimnetz. Muss noch ein Betriebssystem installiert werden, so empfiehlt sich diese Seite, da hier gleichzeitig ein SSH Zugang mit aktiviert wird.
https://www.tutonaut.de/anleitung-raspberry-pi-ohne-monitor-und-tastatur-headless-einrichten/
Als erstes loggen wir uns im Pi ein, anschließend vergeben wir mit sudo su -
root Rechte, sonst gibt es später Probleme.
Die gesamte Installation muss als root durchgeführt werden.
Danach muss Pi-Hole heruntergeladen werden, dazu gibt es 2 Möglichkeiten:
1. Der automatische Download und die automatische Installation Dazu muss folgender Befehl eingegeben werden:
# curl -SSL https://install.pi-hole.net | bash
2. Der manuelle Download und die anschließende Installation:
# wget -O basic-install.sh https://install.pi-hole.net # sudo bash basic-install.sh
Alle weiteren Installationsschritte für Pi-Hole werden hier gut und ausführlich beschrieben, ich wählte „Custom“ bei der DNS Auswahl.
https://www.heise.de/tipps-tricks/Pi-Hole-auf-dem-Raspberry-Pi-einrichten-so-geht-s-4358553.html
Wenn die Installation von Pi-Hole soweit abgeschlossen ist, widmen wir uns der Installation von Cloudflared. Das wird benötigt, um über Pi-Hole per DNS-over-https (DOH) Anfragen abzuwickeln.
Dazu müssen folgende Befehle nacheinander ausgeführt werden:
# wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz # tar -xvzf cloudflared-stable-linux-arm.tgz # sudo cp ./cloudflared /usr/local/bin # sudo chmod +x /usr/local/bin/cloudflared # cloudflared -v
Wenn diese Befehle erledigt sind, muss noch ein Benutzer angelegt werden. Das wird erledigt mit:
# sudo useradd -s /usr/sbin/nologin -r -M cloudflared
Mit
# nano /etc/default/cloudflared
wechseln wir in das entsprechende Verzeichnis, dort müssen wir, abweichend von der ursprünglichen Installation, für FFMuc folgende Zeilen einfügen:
- /etc/default/cloudflared
... # Commandline args for cloudflared CLOUDFLARED_OPTS=--port 5053 --upstream https://doh.ffmuc.net/dns-query ...
Wenn das erledigt ist, mit strg+x und anschließend y speichern.
Danach rufen wir mit
# nano /lib/systemd/system/cloudflared.service
ein neues Verzeichnis auf und kopieren folgende Zeilen dort hinein:
- /lib/systemd/system/cloudflared.service
[Unit] Description=cloudflared DNS over HTTPS proxy After=syslog.target network-online.target [Service] Type=simple User=cloudflared EnvironmentFile=/etc/default/cloudflared ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
Wieder mit strg+x und anschließend y speichern.
Mit folgenden Befehlen starten und aktivieren wir Cloudflared:
# sudo systemctl enable cloudflared # sudo systemctl start cloudflared # sudo systemctl status cloudflared
Jetzt kommt für FFMuc eine weitere Besonderheit, denn wir müssen mit
# echo "195.30.94.28 doh.ffmuc.net" >> /etc/hosts # echo "2001:608:a01::3 doh.ffmuc.net" >> /etc/hosts
Cloudflared noch die IP´s von FFMuc bekanntgeben und anschließend mit
# systemctl restart cloudflared
Cloudflared neustarten.
Mit dem Befehl
# dig @127.0.0.1 -p 5053 heise.de
überprüfen wir ob alles funktioniert. Die Ausgabe sollte dann so aussehen:
Jetzt können wir uns beim Pi-Hole anmelden und dort die DNS-Server konfigurieren.
Dazu wechseln wir zu „settings“ dort zum Reiter „DNS“ und geben bei „Custom 1“ die IP 127.0.0.1#5053 ein. Damit verweisen wir auf Cloudflared. (Localhost) Wenn man später auf dem Dashboard unter „Queries answered by“ „Localhost“ sieht, weiss man dass die Anfragen über Cloudflared und somit über den DNS von FFMUc gelaufen sind.
Das ganze muss dann so aussehen:
Ganz unten auf dieser Seite müssen wir noch die IP und den Namen vom Router eingeben, rechts unten sieht man auch den „Save“ Button, nicht vergessen zu speichern.
In unserem Fall bleibt der Router der DHCP-Server, nur die externen DNS-Abfragen laufen über den Pi!!!! Anschließend müssen wir noch unserem Router mitteilen, dass die DNS-Abfragen in Zukunft über den Pi laufen. Dazu loggen wir uns auf unserem Router (hier FB 7490) ein und gehen dort zu „Internet → Zugangsdaten → DNS-Server“.
Dort tragen wir die statische IPv4 Heimnetzadresse (in diesem Fall die 10.99.1.11) sowie die Linklocal IPv6 Adresse des Pi ein. Bei der Fritz!Box muss man jeweils beide Felder benutzen, sonst meckert sie beim abspeichern. Die Linklocal beginnt in der Regel mit fe80, sie findet man unter „Heimnetz → Netzwerk“, wenn man auf den Stift rechts neben dem Netzwerkgerät klickt.
Nach der Umstellung sollte alles, einschließlich IPTV (z.B. Entertain) funktionieren.
Auf dem Dashboard vom Pi-Hole http://<IP-des-Pi>/admin/
kann man gut erkennen ob das Pi-Hole funktioniert.
Bitte auch überprüfen ob sich das Pi-Hole die Updatelisten holt. Dazu nach dem Einloggen auf den Pi-Hole unter „Tools → Update Gravity“ im rechten großen Fenster auf „UPDATE“ klicken und warten. Wenn alles funktioniert sollte es so aussehen:
Unter folgender Website gibt es noch weitere Ergänzungslisten für das Pi-Hole:
Die Listen kann man unter „Settings → Blocklists“ einfügen und speichern.
Als Quellen wurden verwendet:
- sowie eigene Bilder und die Hilfe vom FFMuc-Team, Danke dafür!!