4.5.10 Pi Hole - Werbeblocker dank DNS Maskenfilter

Beschreibung: Pi Hole im Docker am TWS - Werbeblocker dank DNS Maskenfilter

Kategorie: Docker

Link zu diesem Beitrag: Alles auswählen

[url=https://forum.timberwolf.io/app.php/kb/viewarticle?a=104&sid=684ab1272911cf79029f61ae826adb24]Knowledge Base - 4.5.10 Pi Hole - Werbeblocker dank DNS Maskenfilter[/url]

Einleitung

Werbung im Internet nervt und wird zunehmend nicht nur anstrengend sondern auch gefährlich.
Adblocker gibt es zuhauf und man kann damit auch überaus befriedigende Lösungen an einzelnen Geräten schaffen. Aber was ist mit weniger bedachten Usern? Und setzen die Adblocker nicht eigentlich an der falschen Stelle an? Wie sieht es mit Smart TVs oder Smartphones und deren APPs aus?

Ich hole einmal kurz aus:

Üblicherweise wird die Internetseite, die wir in unserem Browser eingeben an einen DNS (Domain Name Server) Server gesendet, der das dann anschließend (entweder selbst oder durch Rückfrage bei einem Übergeordneten DNS Server) anschließend auf eine IP Adresse übersetzt. Diese IP Adresse liefert dann den gewünschten Content.

Oft ist der lokale DNS die Fritzbox, die dann entweder beim DNS Server des Providers oder GOOGLE nachfragt (8.8.8.8). Entsprechende Werbung ist dann auf zb auf der Website unter Umständen vom Adblocker unterdrückt.


Setzt man nun als DNS Server beispielsweise ein Pihole ein, übernimmt das Pihole die Aufgabe der DNS Auflösung und gleicht vor der Weitergabe an die öffentlichen DNS Server die angeforderte Domain mit den internen Filterlisten ab. Die Größe der intern verwendeten Listen und deren Anzahl lässt sich beliebig erweitern. Ich habe zwischendurch über eine Million Domains durch einfaches hinzufügen fertiger Listen geblockt.

Jetzt kursieren viele Anleitungen wie man auf einem dedizierten Pi ein Pihole aufsetzen kann. Oder auf einem Eigenbau NAS usw.
Für mich war lange Zeit auf meinem NAS ein Docker Container auf dem NAS mein DNS-Maskenfilter. Pi Spielerein habe ich genügend hier, wollte aber keine wirklich wichtige Funktion einem dieser wirklich netten Spielzeuge laufen lassen. Also musste mein NAS herhalten. Wirklich zufrieden war ich mit dieser Lösung aber ehrlich gesagt nicht. Ein NAS gehört für mich nicht wirklich zum Inventar des Hauses und soll im Falle eines Auszugs evtl mit.
Besser sollte das auf Hardware laufen, diedefinitiv zu dem Haus gehört. Warum also nicht auf dem Wolf?
  1. Konfiguration der Ethernet Schnittstelle als Macvlan
    • Ich habe die Umsetzung über MacVLAN realisiert. Wenn ihr meiner Anleitung folgen wollt, bitte konfiguriert ein MacVLAN Netzwerk gemäß dieser Anleitung:
      Klick
      Hierbei bitte darauf achten, dass für das PiHole eine Kommunkation zwischen Host (Timberwolf) und Container zwingend erforderlich ist, da ihr euren Timberwolf sonst aus dem Internet quasi aussperrt.
  2. Anlegen der Volumes in Portainer
    Als nächstes legen wir im Portainer unter Volumes Volumes an:
    Beispielsweise:
    • Pihole_dnsmasq.d
      Bild
    und
    • Pihole_pi-hole
      Bild

      Jeweils über Create the volume bestätigen.
  3. Herunterladen des Pihole Containers

    Nun da dies erledigt ist, ziehen wir uns das PiHole Image. Getestet wurde pihole/pihole:latest.

    Bild

    Mit Pull the Image wird das Image geladen.
  4. Konfiguration des Containers

    Als erstes vergeben wir unter Name einen Namen für den Container. Bei mir Pihole_pihole.
    Unter Image Configuration wählen wir das eben gewählte Image pihole/pihole:latest aus.

    Bild
  5. Nun können wir uns entscheiden, ob wir alle verwendeten Ports nach außen führen wollen oder nicht
    • Da wir dem Container mittels MACVLAN eine eigene IP zugewiesen haben können wir einfach alle verwendeten Ports freigenen
      Bild
    • Alternativ können wir uns die Ports auch einzeln definieren:
      Achtet hierbei bitte auch auf TCP und UDP.
      Empfehlenswert sind:
      • 443:443 TCP
      • 53:53 UDP
      • 53:53 TCP
      • 67:67 UPD
      • 80:80:TCP

      Der Port 67 ist nur notwendig, falls ihr das Pihole nicht nur als DNS Server, sondern auch als DHCP Server nutzen wollt und ist nur der Vollständigkeit halber mit aufgeführt.
  6. Zuweisen der Volumes

    Nun fügen wir, damit die Listen und Logs beim Update erhalten bleiben unter Volumes die vorher angelegten Volumes wie folgt hinzu, also
    • /etc/pihole auf Pihole_pi-hole und
    • /etc/dnsmasq.d auf Pihole_dnsmasq.d
    Bild
  7. Setzen der Environment Variablen

    Unter ENV müssen wir noch einige environment Variablen setzen.
    • ServerIP muss man die IP des Docker Containers angeben, hier 192.168.178.245
    • TZ legt die Zeitzone fest, bei mir Europe/Berlin
    • WEBPASSWORD definiert das Passwort für die Administrationsoberfläche, im Beispiel supersecure
    • DNS1 habe ich 1.1.1.1 gewählt, weil ich kein besonders großer Fan von Google bin. 8.8.8.8 oder der DNS vom Chaos Computer Club oder ähnliches würde aber auch problemlos funktionieren. Gängige Suchmaschinen liefern DNS Server zu hauf.
    • mit DNS2 könnt ihr einen weiteren DNS eintragen. Ich habe mich für quad 9, also 9.9.9.9 entschieden
    Bild
  8. Konfiguration Network:

    Unter Network
    müssen wir das Pihole nun bei dem Unterpunkt Network unserem MacVLAN zuweisen, bier mir "Dahoam".
    • Hostname habe ich PiHole gewählt
    • IPv4 Adress muss die selbe IP vergeben werden die bei ENV unter ServerIP vergeben wurde
    Bild
  9. Setzen der restart Policy
    • unter restart Policy bitte always oder unless stopped eintragen. Habe das beim testen mal vergessen und mich gewundert warum nichts mehr ging nachdem ich meinen Server mal neu gesartet habe (da waren ein paar Tage dazwischen und ich hatte das in dem Moment nicht auf dem Schirm. War wirklich lästig).
  10. Dann noch auf Deploy the Container klicken
    • Auf die Oberfläche kommt man über die IP des Docker Containers /admin, also im Beispiel: 192.168.178.245/admin
  11. Setzen des DNS in eurem Modem/DHCP Server

    Um das Pihole auf dem Timberwolf nun als DNS-Server auf all euren Endgeräten (die auf DHCP eingestellt sind) zu nutzen muss nun noch der DNS Server in eurem DHCP Server auf die IP des PiHoles gesetzt werden, also im Beispiel: 192.168.178.245.
    • In einer Fritzbox 7560 geht das beispielsweise indem ihr euch einloggt, auf
      Heimnetz -> Netzwerk -> Netzwerkeinstellungen -> IPv4-Adressen klickt

      Bild

      Hier kann man nun den Lokalen DNS Server eintragen. im Beispiel 192.168.178.245.

      Bild
    Nun noch bestätigen und das war auch schon alles.