UPGRADE IP 9 verfügbar!
Timberwolf VISU jetzt mit NEUEM Layout Editor
Freie Anordnung, Reihenfolge und Größe der Widgets - viele weitere Verbesserungen
Infos im Wiki: https://elabnet.atlassian.net/l/cp/06SeuHRJ

NEU! Insider & Leistungsmerkmale FÜR ALLE freigeschaltet
Damit kann nun jeder das Upgrade vornehmen und VISU & IFTTT testen. Alle Info hier: viewtopic.php?f=8&t=5074

Pi Hole im Docker - Werbeblocker dank DNS Maskenfilter

Informationen über Docker, Verwaltung mit portainer und VMs
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Benutzeravatar

Ersteller
Judas_z
Elaborated Networks
Reactions:
Beiträge: 179
Registriert: Mo Aug 13, 2018 11:31 am
Hat sich bedankt: 392 Mal
Danksagung erhalten: 333 Mal

Pi Hole im Docker - Werbeblocker dank DNS Maskenfilter

#1

Beitrag von Judas_z »

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.
  12. Lokale Gerätenamen auflösen
    Um im Internen Netzwerk Gerätenamen auflösen zu können muss nun noch im Pihole die bedingte Weiterleitung aktiviert werden, sofern das Pihole nicht ebenfalls euren DHCP Server stellt (in dieser Anleitung der Fall).
    • klickt hierfür im PiHole auf Settings
    • dann auf DNS
    • setzt unten ein Häcken bei "use Conditional Fowarding"
    • tragt die IP eures Routers ein bei mir 192.168.178.1
    • tragt euren domain Namen ein. Bei mir Dahoam, in den meisten Fällen dürfte dies fritz.box sein
    Bild
  13. Container Updaten

    Da das Pihole den DNS Server im internen Netzwerk darstellt, muss vor dem neu Erstellen des Images erst das Image gezogen werden.

    Hierfür bitte zunächst in Portainer unter Images bei Pull image einfach das entprechende Image eingeben, hier pihole/pihole:latest, auf Pull the image klicken.

    Bild

    Alles weitere verläuft analog zum Unifi Controller oder einem anderen.

    Dann auf Containers klicken auf den Namen des Pihole Containers, hier Pihole_Pihole

    Bild

    Dann auf Duplicate/Edit

    Bild

    Und dann auf Deploy the container.

    Bild

Zu den Filterlisten wollte noch erwähnen, dass nicht zwangsläufig die Blocklisten interessant sind, sondern auch die Whitelists. Hier etwas allgemeingültiges zu formulieren halte ich für äußerst schwierig. Ich verlinke mal Seiten an denen ich mich orientiert habe.

Whitelistvorschläge aufgeschlüsselt
Vorschläge Block und Whitelist


Das war auch schon alles. Viel Erfolg wünscht euer ElabNET Team
Zuletzt geändert von Judas_z am Di Okt 01, 2019 5:47 pm, insgesamt 17-mal geändert.
Liebe Grüße,

Julian


Elaborated Networks GmbH
Hardware Entwicklung

timberwolf90, VPN offen, Reboot jederzeit
Benutzeravatar

MeisterLampe
Reactions:
Beiträge: 81
Registriert: Di Dez 18, 2018 8:17 am
Wohnort: Braunschweig
Hat sich bedankt: 35 Mal
Danksagung erhalten: 35 Mal

#2

Beitrag von MeisterLampe »

Sehr gute Idee, habe pi-hole aktuell noch auf einem PI implementiert aber da ist der Timberwolf natürlich viel besser für geeignet.
Viele Grüße Philipp
Timberwolf Server 2600 | ID:246 | VPN offen

r3dbull
Reactions:
Beiträge: 74
Registriert: So Aug 12, 2018 6:13 am
Hat sich bedankt: 159 Mal
Danksagung erhalten: 7 Mal

#3

Beitrag von r3dbull »

Schön das es hier auch funktioniert.

Werde ich dann auch mal machen. Habe mich erst letztens an einer Installation auf einem Pi versucht. Läuft auch soweit. Nur wird leider kaum etwas gefiltert. Trotz x Listen die ich eingepflegt hatte. Vielleicht kennt ja jemand noch eine Anleitung (habe bisher nur das ein oder andere Youtube Video gesehen)
Gruß Chris

Wiregate / Timberwolf136 (2500) / VPN aktiv / Reboot OK
Benutzeravatar

Dennis
Reactions:
Beiträge: 298
Registriert: Sa Aug 11, 2018 10:35 pm
Hat sich bedankt: 11 Mal
Danksagung erhalten: 171 Mal

#4

Beitrag von Dennis »

Eine kleine Warnung noch zu piHole. Der WAF ist teilweise sehr schlecht. Die Standard-Listen blocken leider auch oft "normale" Funktionalitäten in Shops usw. Oft kann man auch nicht mehr auf die ersten Google Ergebnisse klicken die auf Grund von Bezahlung da gelandet sind und über irgendwelche Tracking Links leiten.
Ich habe das auch im Docker laufen. Man sollte aber am Anfang im Live Log genau die geblockten Seiten im Auge behalten und selektiv etwas Whitelisting betreiben. Dann klappts auch mit der Chefin :D
Viele Grüße,
Dennis

"TWS 2600 ID:180 + 2x PBM ID:123 + ID:795, 1x TP-UART, VPN offen, Reboot erlaubt"
Wiregate, KNX, 1-Wire, DMX, ...

Didda93
Reactions:
Beiträge: 172
Registriert: Fr Jan 11, 2019 12:24 pm
Hat sich bedankt: 341 Mal
Danksagung erhalten: 112 Mal

#5

Beitrag von Didda93 »

Ich persönlich wäre sehr an einer Hutschinen-Anleitung interessiert, da ich sowieso schon am überlegen war ob ich es nicht vielleicht per Raspberry umsetzen sollte (habe mich mit Dicker an sich noch nicht beschäftigt, weshalb ich die Reichweite der erforderlichen Änderungen zu der jetzigen Anleitung nicht einschätzen kann)
Grüße
Philipp
Grüße Philipp

TWS 960Q ID: 441 (VPN offen, Reboot nach Absprache)

Didda93
Reactions:
Beiträge: 172
Registriert: Fr Jan 11, 2019 12:24 pm
Hat sich bedankt: 341 Mal
Danksagung erhalten: 112 Mal

#6

Beitrag von Didda93 »

Hallo,
Ist es möglich kurz zu schreiben welche Änderungen man für Hutschienenmodelle vornehmen muss oder handelt es sich um größere Änderungen?

Ps: glaube das letzte Bild der Anleitung müsste noch geändert werden da es identisch zum vorherigen ist

Mfg
Grüße Philipp

TWS 960Q ID: 441 (VPN offen, Reboot nach Absprache)
Benutzeravatar

Ersteller
Judas_z
Elaborated Networks
Reactions:
Beiträge: 179
Registriert: Mo Aug 13, 2018 11:31 am
Hat sich bedankt: 392 Mal
Danksagung erhalten: 333 Mal

#7

Beitrag von Judas_z »

Die Anleitung ist auch noch nicht fertig. Ich bin leider zeitlich noch nicht dazugekommen sie fertigzustellen. Beim herumspielen habe ich einen kleineren Bug gefunden (kann sein, dass es auch nur auf dem dev built auftritt).
Theoretisch sollte für die Hutschienenserver keine Änderung notwendig sein wenn die Anleitung fertig ist, da ich ein Image mit autodetect der Architektur gewählt habe. In der Praxis wird sich das noch beweisen müssen. Bei uns heißt es ganz klar: "was nicht getestet wurde funktioniert auch nicht".

Aber wie gesagt ist noch nicht fertig. Mit viel Glück komme ich das Wochenende dazu hier ein wenig weiter zu machen.

Liebe Grüße, Julian
Liebe Grüße,

Julian


Elaborated Networks GmbH
Hardware Entwicklung

timberwolf90, VPN offen, Reboot jederzeit

Didda93
Reactions:
Beiträge: 172
Registriert: Fr Jan 11, 2019 12:24 pm
Hat sich bedankt: 341 Mal
Danksagung erhalten: 112 Mal

#8

Beitrag von Didda93 »

Judas_z hat geschrieben: Fr Mär 29, 2019 8:37 pm Mit viel Glück komme ich das Wochenende dazu hier ein wenig weiter zu machen.

Liebe Grüße, Julian
Hallo nochmal,
Besteht die Möglichkeit, dass sich die Fertigstellung der Anleitung und (für mich vor allem interessant) die notwendigen Änderungen für das Hutschienenmodell in den nächsten paar Tagen ergibt?

LG
Philipp
Grüße Philipp

TWS 960Q ID: 441 (VPN offen, Reboot nach Absprache)
Benutzeravatar

Ersteller
Judas_z
Elaborated Networks
Reactions:
Beiträge: 179
Registriert: Mo Aug 13, 2018 11:31 am
Hat sich bedankt: 392 Mal
Danksagung erhalten: 333 Mal

#9

Beitrag von Judas_z »

Leider nein. Genau wie beim Desktop kann man den Wolf aktuell noch nicht im Router als DNS eintragen kann (also geht schon, aber man sperrt seinen Wolf halt dann aus dem Internet aus und ist deshalb noch nicht zu empfehlen bis der Host mit dem VLAN kommunizieren kann).

Und bei meinem Wolf hat ein hartes Setzen des DNS auf 1.1.1.1 zu merkwürdigem Verhalten geführt. Um sinnvoll weiter zu machen brauche ich mal ein paar etwas ruhigere Tage.
Theoretisch kannst du aber alles aus der Aleitung 1:1 übernehmen. Der Container erkennt die Architektur des Host Systems automatisch. Nur als DNS in deinem Router solltest du den Wolf noch nicht eintragen (genausowenig wie beim Desktop), sondern stattdessen am Endgerät den dns eingeben.
Liebe Grüße,

Julian


Elaborated Networks GmbH
Hardware Entwicklung

timberwolf90, VPN offen, Reboot jederzeit

Didda93
Reactions:
Beiträge: 172
Registriert: Fr Jan 11, 2019 12:24 pm
Hat sich bedankt: 341 Mal
Danksagung erhalten: 112 Mal

#10

Beitrag von Didda93 »

Da man ja für hutschiene eine andere Architektur hat: hast du eine Empfehlung für einen Arm-Container?

Grüße
Philipp
Grüße Philipp

TWS 960Q ID: 441 (VPN offen, Reboot nach Absprache)
Antworten

Zurück zu „Docker, portainer, VM“