Pi-Hole

Pi-Hole

Pi-Hole ist ein Programm, dass unerwünschte Werbung aus Webseiten herausfiltern kann. Es lässt sich sehr einfach auf einem Raspberry Pi in Docker installieren.

Pi-Hole Status
Pi-Hole Statusseite

Auf dem Bild oben siehst du, dass Pi-Hole aktuell bei mir fast 8% der Anfragen ins Netz blockiert hat, weil es Werbung- oder Tracking-URL waren. Gerade Tracking-URL zu blockieren trägt zum Datenschutz bei.

Material

  • Raspberry Pi 4 8GB
  • Micro SD Karte

Es würde auch ein 2GB oder 4GB Pi reichen. Ich dimensioniere sowas lieber etwas größer für den Fall, dass noch weitere Docker-Container darauf laufen sollen.

Installation

Wenn du deinen Raspberry Pi mit Docker vorbereitet hast, ist die Installation von Pi-Hole als Container sehr einfach.
Erstelle eine Datei namens docker-compose.yml und kopiere den nachfolgenden Inhalt hinein

# 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"
      - "80:80/tcp"
      - "443:443/tcp"
    environment:
      TZ: 'Europe/Berlin'
      WEBPASSWORD: '<passwort>'
    # Volumes store your data between container upgrades
    volumes:
      - '/opt/pihole/etc-pihole/:/etc/pihole/'
      - '/opt/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: unless-stopped

Für das WEBPASSWORD musst natürlich dein eigenes Passwort einsetzen. Es dient später zum Login in das Programm.
Danach legst du die beiden Verzeichnisse für die Volumes an.

sudo mkdir -p /opt/pihole/etc-pihole
sudo mkdir -p /opt/pihole/etc-dnsmasq.d

Mittels

docker-compose up -d 

bringst du PiHole zum Laufen. Um dich an dem System anzumelden rufst du im Browser die Adresse http:///admin auf. Für kannst du wahlweise die IP oder den Netzwerknamen benutzen. Zur Anmeldung benötigst du nur das Passwort, dass du in der docker-compose.yml eingetragen hast.

Konfiguration

Pi-Hole bringt von sich aus schon eine Liste mit schädlichen URL mit, die blockiert werden. Dies lässt sich aber über den Menüpunkt „AdLists“ beliebig erweitern. Bei FireBog findest du eine ganze URL-Sammlung von schädlichen und verdächtigen Adressen.

konfigurierte Blocklists
konfigurierte Blocklists

Mit diesen drei Einträgen werden bei mir über 660.000 URL blockiert.

Tipp: Ich hatte einmal den Fall, dass in einer der Blocklisten ein URL vorhanden war, der dazu führte, dass YouTube nicht mehr korrekt funktionierte. In diesem Fall empfehle ich dir, solche Domains in die Whitelist zu packen.

Pi-Hole verhält sich wie ein DNS-Server und lässt nur die guten Domains durch. Um es für dein gesamtes Netzwerk zu nutzen, musst du in deinem AccessPoint den DNS-Server auf die IP des Raspberry Pi umstellen.
Du kannst aber auch nur einzelne Rechner in den Vorteil des Blockens kommen lassen, in dem du dort den DNS-Server umlenkst.

Wartung

Um deine Konfiguration zu sichern, kannst du mit dem Menüpunkt „Settings/Teleporter/Backup“ ein Backuparchiv runterladen und bei Bedarf wieder einspielen.

Um den Container auf ein neues Image zu aktualisieren, habe ich dieses Skript im Einsatz

#! /usr/bin/bash

export COMPOSE_IGNORE_ORPHANS=True
echo "pulling new image"
docker pull pihole/pihole:latest
echo "removing container"
docker rm -f pihole
echo "creating new container"
docker-compose  up -d

Es muss im gleichen Verzeichnis aufgerufen werden, in dem auch die docker-compose.yml Datei von oben liegt.
Hinweis: Bei einem Update ist mir passiert, dass sich die interne Datenbank von Pi-Hole sich geändert hat und der Container nicht fehlerfrei starten konnte. Daher ist ein Backup des Pis vor dem Update keine schlechte Idee. Sollte dir so etwas passieren, kannst du einfach die Dateien gravity.db und pihole-FTL.db im Verzeichnis /opt/pihole/etc-pihole löschen. Sie werden beim Start des neuen Containers mit der aktualisierten Datenbankstruktur neu angelegt.

Update vom 08.11.23: network_mode: host aus der docker-compose.yml entfernt.

Schreibe einen Kommentar

Cookie Consent Banner von Real Cookie Banner