Internet-Werbung blockieren im ganzen Netzwerk - Pi-hole/Docker

 

Durch die Verwendung eines Adblockers ist es möglich einen Großteil der angezeigten Werbung im Internet auszublenden. Wer für sein Heimnetzwerk einen zentralen Adblocker sucht, sollte sich den Werbeblocker Pi-hole ansehen. Pi-hole ist ein Open-Source DNS-Server mit integriertem Tracking- und Werbeblocker. Pi-hole läuft auf den gängigen Linux-Systemen und kann somit unter anderem auf einem Raspberry-Pi oder in einem Docker-Container betrieben werden.

Docker Basics

Docker ermöglicht es, Services oder Applikationen per Befehl in einem sogenannten Container zu starten.
Ein Container ist eine vom Betriebssystem (OS) unabhängige isolierte Umgebung:
Beim ersten Start eines Containers, lädt Docker selbstständig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker

Damit die DNS-Anfragen aller Geräte im Netzwerk von Pi-hole beantwortet werden, kann die IP-Adresse von Pi-hole als DNS-Server zentral am Router hinterlegt werden. Geräte mit automatischer Adressvergabe: DHCP, verwenden dadurch Pi-hole als DNS und somit dessen Werbefilter. Als Beispiel kann in der freien Router-Firmware OpenWRT der DNS wie folgt angepasst werden: /openwrt-mein-setup#dns. Ich verwende Pi-hole als Docker-Container auf meiner NAS, siehe auch:  NAS selber bauen: flexibel, stromsparend und billig [HowTo].

docker-compose.yml

Nachdem der Port 80 auf meiner NAS bereits anderweitig besetzt ist, verwende ich eine leicht angepasste Version der docker-compose.yml des Herstellers: 

version: "3"

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    container_name: pihole
    image: pihole/pihole:latest
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "67:67/udp"
      - "84:80/tcp"
    environment:
      TZ: 'Europe/Amsterdam'
      WEBPASSWORD: 'password'
    # Volumes store your data between container upgrades
    volumes:
      - './etc-pihole/:/etc/pihole/'
      - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
    # Recommended but not required (DHCP needs NET_ADMIN)
    #   https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
    cap_add:
      - NET_ADMIN
    restart: always

In der Datei wird der Port 84 auf 80 gemappt. Entsprechend ist die Admin-Oberfläche später unter der IP-Adresse der NAS mit Port 84 erreichbar. Zudem habe ich die Variable "WEBPASSWORD" mit einem sicheren Kennwort befüllt. Das Beispiel verwendet Bind-Mounts und keine Docker Volumes für das permanente Speichern der Daten. Siehe: Docker Daten speichern: Docker Volumes vs. Host-Ordner

Der Start des Containers im Terminal erfolgt mit folgendem Befehl: 

docker-compose up -d

Beim ersten Start hatte ich dann noch ein Problem mit dem Port 53, dieser war auf meiner NAS bereits belegt:

Ubuntu/Debian Port 53 besetzt

Da meine NAS Debian verwendet, blockiert der Dienst systemd-resolv den DNS-Port 53. Damit sich für den Pi-hole-Docker-Container der Port 53 nutzen lässt, habe ich den systemd-resolved-Service deaktiviert.

user@rechner:/docker/pi-hole$ sudo netstat -tulpn | grep LISTEN
...
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      1279/systemd-resolv
...
user@rechner:/docker/pi-hole$ sudo systemctl disable systemd-resolved.service
Removed /etc/systemd/system/dbus-org.freedesktop.resolve1.service.
Removed /etc/systemd/system/multi-user.target.wants/systemd-resolved.service.
user@rechner:/docker/pi-hole$  sudo systemctl stop systemd-resolved

Admin-Oberfläche

Der Aufruf der Admin-Oberfläche erfolgt im Browser mit der IP-Adresse der NAS und den zuvor verwendeten Port 84:

http://x.x.x.x:84/admin

Pi-hole verwendet eine vordefinierte Blacklist und zeigt bereits auf der Startseite Statistiken zu den Clients und den erlaubten, sowie blockierten Domains:

Zusätzlich zu Pi-hole verwende ich aktuell noch die DNS-Server von OpenDNS als Upstream DNS-Servers um nicht jugendfreie Inhalte aus dem Heimnetzwerk möglichst zu verbannen, siehe auch:  kindersicheres Internet über das Heimnetzwerk - DNS am Router.

In Pi-hole befindet sich die Einstellung für den Upstream DNS Server unter Settings/DNS:

 

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!

Aktualisiert: 14.10.2022 von Bernhard | Translation English |🔔 | Kommentare:0


Top-Artikel in diesem Bereich


ioBroker installieren - Docker

Mit ioBroker können verschiedene Automatisierungslösungen oder Geräte in einem System zusammengefasst werden. Um bestimmte Gateways oder Geräte ansprechen zu können, werden in ioBroker verschiedene Adapter verwendet.


Signal Nachrichten per API versenden: signal-cli-rest-api

Der bekannte Signal Messenger kann nicht nur über dessen App, sondern auch über die Befehlszeile oder von anderen Systemen verwendet werden. Eine einfache Möglichkeit dafür bietet die signal-cli-rest-api, welche in Form eines Docker-Containers zur Verfügung steht. Damit die API funktioniert, muss diese zuvor über die Signal-App gekoppelt werden.


Bitwarden in Docker betreiben - Setup Schritt für Schritt

Bitwarden ist ein webbasierter Passwort-Manager, ähnlich LastPass, aber Open Source und der Möglichkeit diesen selbst zu betreiben (hosten). Wie sich Bitwarden im Vergleich zu anderen Passwort-Managern einordnet, habe ich auf folgender Seite überlegt: Passwort-Manager sicher? KeePass vs. LastPass vs. Bitwarden. Bitwarden besteht aus mehreren Services, welche über verschiedene Container bereitgestellt werden können. Das relativ aufwändige Setup wurde mit "Bitwarden Unified" speziell für ein Selbs...

Fragen / Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu Mehr Details