++ Pi-hole 5

Änderungsstand: 2020-07-11

11.07.2020: Zusätzliche Einstellung in der Fritz!Box-Konfiguration hinzugefügt.

Pihole 5 mit Traefik2.2

Was wird hier erstellt? Wir installieren einen Pihole 5.x Docker, der an das Traefik 2 angebunden wird und somit auch von Aussen erreichbar und konfigurierbar ist. Auch hier verwende ich die zusätzliche Passwortabfrage. Anschließend gibt es noch eine Konfiguration, damit man an einem Win10-Rechner sehen kann, ob auch alles funktioniert. Zum Schluß dann die eigentliche Hinterlegung in der FritzBox, damit alle angeschlossen Geräte davon profitieren, ohne diese einzeln konfigurieren zu müssen.

Alles basierend auf diesen überarbeiteten Guide, wo Traefik2.2 installiert wird! Das ist wichtig, da sonst die Label-Befehle anders aussehen könnten und die Funktion letztendens nicht gegeben ist.

Zuerst erstelle ich die externen Arbeitsverzeichnisse für Pihole und Dnsmasq. Dnsmasq wird von Pihole mitgeliefert, man muss es aber nicht verwenden. Gerade die Benutzer einer aktuellen FritzBox wollen da nicht auf die Mesh-Integration ihrer Box verzichten.

Da ich momentan keine ext. HDD zur Verfügung habe, verwende ich das /var/lib – Verzeichnis des Linux-Systems. Auch hier gilt wieder, Eure eigenen Werte einzusetzen.

sudo apt install docker docker-compose curl jq
sudo mkdir /var/lib/Pihole && sudo mkdir /var/lib/Dnsmasqd
sudo mkdir /home/dockervolumes/pihole
sudo nano /home/dockervolumes/pihole/docker-compose.yml
version: "3"

## More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    image: pihole/pihole:latest
    container_name: pihole
    hostname: "pihole"
    restart: unless-stopped
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "8085:80/tcp"
    environment:
      ServerIP: 192.168.252.118
      PROXY_LOCATION: pihole
      VIRTUAL_HOST: pihole.knilix.duckdns.org
      TZ: 'Europe/Berlin'
      WEBPASSWORD: 'Sicheres Passwort'
    volumes:
      - /var/lib/Pihole/:/etc/pihole/
      - /var/lib/Dnsmasqd/:/etc/dnsmasq.d/
    dns:
      - 127.0.0.1
      - 1.1.1.1
    networks:
      - traefik-net
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.pihole.entrypoints=http"
      - "traefik.http.routers.pihole.rule=Host(`pihole.knilix.duckdns.org`)"
## Passwortabfrage
      - "traefik.http.middlewares.pihole-auth.basicauth.users=admin:$$apr1$$2W74R0Cf$$HD9TjPUXTtDIfbdFU3FtN."
##################
      - "traefik.http.routers.pihole.middlewares=https-redirect@file"
      - "traefik.http.routers.pihole-secure.entrypoints=https"
      - "traefik.http.routers.pihole-secure.rule=Host(`pihole.knilix.duckdns.org`)"
## Passwortabfrage
      - "traefik.http.routers.pihole-secure.middlewares=pihole-auth"
##################
      - "traefik.http.routers.pihole-secure.tls.certresolver=lets-encr"
      - "traefik.docker.network=traefik-net"
      - "traefik.http.services.pihole.loadbalancer.server.port=80"

    cap_add:
      - NET_ADMIN

networks:
  traefik-net:
    external: true

STRG-x, y, Enter

cd /home/dockervolumes/pihole && sudo docker-compose up -d

Nachdem der Docker gestartet wurde und LetsEncrypt die Schlüssel bereitstellte (dauert ca. 1 Minute), ist PiHole unter pihole.knilix.duckdns.org gesichert erreichbar. Hier natürlich auch mit extra Passwortschutz über Traefik. Aber auch intern kann man die Weboberfläche von Pihole mit Server-IP:8085 erreichen. Nach erfolgreichem Login erhält man folgende Startseite:

Stehen im Roten Feld schon Zahlen drin, funktioniert unser Pihole. Weitere Konfigurationen sind hier vorerst nicht notwendig.

Jetzt überprüfen wir am Win10-Rechner, ob Pihole wirklich arbeitet, oder ob das nur reine Makulatur ist 🙂

Rechte Maustaste auf Start, dann auf „Netzwerkverbindungen“, „Ethernet“, dann rechts auf „Adapteropionen ändern“, dann auf die verwendete Netzwerkkarte Doppelklick, jetzt auf „Eigenschaften“, Doppelklick auf „Internetprotokoll, Version 4 (TCP/IPv4). Dort bei „Folgende DNS-Serveradressen verwenden“ die IP-Adresse des RaspberryPi (bei mir die 192.168.252.118) eintragen und OK klicken.

Jetzt läuft der Win10-Rechner über Pihole. Um das jetzt zu überprüfen, gehen wir auf www.bild.de (dieser Link dient nur zur Veranschaulichung, da dort ziemlich viel Werbung eingeblendet wird) und klicken einen Beitrag dort an. Anschließend gehen wir wieder auf die Benutzeroberfläche von Pihole und schauen uns das Ergebnis an.

Hier ist das Blaue Feld interessant. Stehen jetzt dort Werte größer Null drin, passt alles und Pihole arbeitet. Da wir jetzt wissen, das alles läuft, können wir die Einstellung am Rechner wieder Rückgängig machen, es sei denn, Ihr wollt noch etwas Testen. Bedenkt nur, dass, wenn der Server oder der Docker ausgeschaltet wird, auch der Rechner keine Daten mehr beziehen kann.

Nun könnte man auf jeden einzelnen Rechner, jedes Tablett, jedes Handy und auch jedes TV-Gerät separat auf den Pihole einstellen. Man merkt eigentlich schon beim Lesen, dass das eigentlich verrückt ist 🙂

Man kann aber auch in der Benutzeroberfläche des Routers, in meinen Fall eine Fritz!Box 7590, den Pihole eintragen und alle verfügbaren Geräte profitieren automatisch davon, ohne diese zusätzlich einzurichten. Ich habe erst einige Tage mit dieser soeben vorgestellten Einstellung Versuche unternommen, bevor ich die Einträge in der Fritze übernahm.

Folgendes Beispiel wurde mit der Softwareversion 7.12 (Stand: 05/2020) realisiert.

  • Benutzeroberfläche der FritzBox öffnen
  • Heimnetz
  • Netzwerk
  • Netzwerkeinstallungen
  • IP-Adressen –> IPv4-Adressen

Jetzt die IP-Adresse des RaspberryPi dort bei „Lokaler DNS-Server:“ eintragen. Dann auf „OK“ klicken“.

Jetzt ist der Lokale DNS-Server unser Pihole.

Achtung! Leider reicht diese Einstellung in der Fritz!Box nicht mehr aus. Zusätzlich muss noch eine weitere Einstellung getätigt werden.

  • Internet
    • Zugangsdaten
      • DNS-Server
        • „Andere DNSv4-Server verwenden“
          • Dort bei „Bevorzugter“- UND bei „Alternativer DNSv4-Server“ die IP-Adresse des Unraid-Servers eintragen!

Erst jetzt ist ein sicheres Blocken gewährleistet.

.

Weitere Einstellungen in der Pihole Benutzeroberfläche

Als erstes stelle ich in Pihole einen oder zwei weitere DNS-Server ein. Das dient nur zur Sicherheit, falls der Google-DNS doch mal „abschmieren“ sollte.

  • Settings
  • DNS
  • Bei OpenDNS und bei Cloudflare jeweils 2 Häckchen rein und „Save“ klicken

Ansonsten bin ich immer noch am Testen. Das Resultat ist auch für den Anfang, obwohl noch nichts weiter konfiguriert wurde, beeindruckend.

.

Quelle: https://github.com/pi-hole/docker-pi-hole/blob/master/docker-compose-traefik-proxy.md