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
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:
{{percentage}} % positiv
DANKE für deine Bewertung!
Top-Artikel in diesem Bereich
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.
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 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...