knb:pihole

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
knb:pihole [2019/10/04 15:51] – angelegt Djangoknb:pihole [2022/08/02 20:08] (aktuell) awickert
Zeile 1: Zeile 1:
-====== Raspberry 4 mit Pi-Hole und DOH über FFMuc nutzen ====== +{{htmlmetatags>metatag-robots=(index,follow)  
-{{:ffmuc_logo.png?nolink&150|Bild: Freifunk München Logo}}+metatag-description=(Raspberry 4 mit Pi-Hole und DOH über FFMuc nutzen) 
 +}} 
 +====== Raspberry 4 mit Pi-Hole und DoH über FFMuc nutzen ====== 
 +{{ :ffmuc_logo.png?nolink&150|Bild: Freifunk München Logo}}
  
 +In diesem Artikel beschreibt **[[https://chat.ffmuc.net/freifunk/messages/@thegoliath|thegoliath]]** wie man mit einem **Raspberry Pi 4** mit **Pi_Hole** und **FFMUC DNS** nutzen kann.
  
 +Im Tutorial benutztes Equipment, Stand Januar 2022
 +  * AVM FRITZ!Box 7490 mit Fritz!OS 7.12
 +  * Raspberry 4 mit 4 GB RAM und Raspbian Buster (Raspberry Pi OS Bullseye wird natürlich auch unterstützt und sollte ohne Modifikationen funktionieren)
 +
 +Es wird in den weiteren Schritten davon ausgegangen, dass auf dem Pi bereits ein funktionierendes Betriebssystem (z.B. Raspbian/Raspberry Pi OS) 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 auf dem Pi ein, anschließend geben wir uns mit ''sudo su -'' root Rechte, sonst gibt es später Probleme. 
 +
 +<WRAP center round tip 60%>
 +**Die gesamte Installation muss als root durchgeführt werden**.
 +</WRAP>
 +
 +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 des Cloudflared-Dienstes. Dieser wird benötigt, um über Pi-Hole per DNS-over-HTTPS (DoH) Anfragen verschlüsselt abzuwickeln.
 +
 +Dazu müssen folgende Befehle nacheinander ausgeführt werden:
 +
 +  # wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64
 +  # sudo cp ./cloudflared-linux-arm64 /usr/local/bin/cloudflared
 +  # 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
 +
 +  # sudo nano /etc/default/cloudflared
 +
 +öffnen wir die Standard-Konfigurationsdate des Cloudflared-Dienstes. <fc #ff0000>Abweichend von der ursprünglichen Installation</fc> müssen wir für die DoH-Server von FFMUC folgende Zeilen einfügen:
 +
 +<file bash /etc/default/cloudflared>...
 +
 +# Commandline args for cloudflared
 +CLOUDFLARED_OPTS=--port 5053 --upstream https://doh.ffmuc.net/dns-query
 +
 +...
 +</file>
 +Wenn das erledigt ist, mit der Tastenkombination STRG + x und anschließend durch Drücken der Taste y die Datei speichern.
 +
 +Danach rufen wir mit
 +
 +  # nano /lib/systemd/system/cloudflared.service
 +
 +eine neue Datei für das z.B. Starten & Stoppen des Cloudflared-Dienstes auf und kopieren dort folgende Zeilen hinein:
 +<file bash /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
 +</file>
 +Wieder mit der Tastenkombination STRG + x und anschließend durch Drücken der Taste y die Datei speichern.
 +Nun müssen wir noch die Berechtigungen für den `cloudflared` Nutzer anpassen
 +  # sudo chown cloudflared:cloudflared /etc/default/cloudflared
 +  # sudo chown cloudflared:cloudflared /usr/local/bin/cloudflared
 +
 +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 "5.1.66.255 doh.ffmuc.net" >> /etc/hosts
 +  # echo "185.150.99.255 doh.ffmuc.net" >> /etc/hosts
 +  # echo "2001:678:e68:f000:: doh.ffmuc.net" >> /etc/hosts
 +  # echo "2001:678:ed0:f000:: doh.ffmuc.net" >> /etc/hosts
 +
 +dem Cloudflared-Dienst noch die IP's von den FFMUC-DoH-Servern 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:
 +
 +{{ :knb:pihole_01.png?direct&700 |Bild: Bildschirmhardcopy Befehl dig}}
 +
 +Jetzt können wir uns beim Pi-Hole anmelden und dort die DNS-Server konfigurieren.
 +Im Normalfall ist das Webinterface unter der IPv4-Adresse eures Raspberry Pis erreichbar (z.B. http:%%//%%<IP-des-Pi>/admin)
 +
 +Nun wechseln wir zu „**Settings**“ dort zum Reiter „**DNS**“ und geben bei
 +„**Custom 1 (IPv4)**“ die IP-Adresse //**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, weiß man, dass die Anfragen über Cloudflared und somit über den DNS von FFMUC gelaufen sind.
 +
 +Das ganze muss dann so aussehen:
 +
 +{{ :knb:pihole_02.png?direct&700 |Bild : Bildschirmhardcopy PiHole }}
 +
 +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.
 +
 +{{ :knb:pihole_03.png?direct&700 |Bild : Bildschirmhardcopy PiHole }}
 +
 +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 eine AVM FRITZ!Box 7490) ein und gehen dort zu „**Internet -> Zugangsdaten -> DNS-Server**“.
 +
 +Dort tragen wir die <fc #ff0000>statische IPv4 Heimnetzadresse</fc> (<fc #ff0000>in diesem Fall</fc> die 10.99.1.11) sowie die **Link-Local IPv6 Adresse des Pi** ein. Bei der Fritz!Box muss man jeweils beide Felder benutzen, sonst meckert sie beim abspeichern. Die Link-Local beginnt in der Regel mit **fe80**, sie findet man unter „**Heimnetz -> Netzwerk**“, wenn man auf den Stift rechts neben dem Netzwerkgerät klickt.
 +
 +{{ :knb:pihole_04.png?direct&700 |Bild : Bildschirmhardcopy Fritzbox-DNS }}
 +
 +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.
 +
 +{{ :knb:pihole_05.png?direct&700 |Bild : Bildschirmhardcopy Pi-Hole Dashboard }}
 +
 +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:
 +
 +{{ :knb:pihole_06.png?direct&700 |Bild : Bildschirmhardcopy Pi-Hole Updateliste }}
 +
 +Unter folgender Website gibt es noch weitere Ergänzungslisten für das Pi-Hole:
 +
 +  * [[https://firebog.net]]
 +
 +Die Listen kann man unter "**Settings -> Blocklists**" einfügen und speichern.
 + 
 +Als Quellen wurden verwendet: 
 +
 +  * [[https://github.com/pi-hole/pi-hole/#one-step-automated-install|]] \\
 +  * [[https://docs.pi-hole.net/guides/dns/cloudflared/]] \\
 +  * [[https://www.heise.de/tipps-tricks/Pi-Hole-auf-dem-Raspberry-Pi-einrichten-so-geht-s-4358553.html]] \\
 +  * [[https://www.tutonaut.de/anleitung-raspberry-pi-ohne-monitor-und-tastatur-headless-einrichten/]] \\
 +  * sowie eigene Bilder und die Hilfe vom FFMUC-Team, Danke dafür!!
  • knb/pihole.txt
  • Zuletzt geändert: 2022/08/02 20:08
  • von awickert