1. Einleitung
Pi-hole ist ein DNS-Sinkhole, das auf Netzwerkebene unerwünschte Inhalte wie Werbung und Tracker blockiert, ohne dass Client-Software installiert werden muss. Es funktioniert als DNS-Server für Ihr Heimnetzwerk und filtert Anfragen zu bekannten Werbe- und Tracking-Domains heraus.
Die Vorteile von Pi-hole:
- Blockiert Werbung im gesamten Netzwerk
- Reduziert Bandbreitenverbrauch
- Verbessert Ladezeiten von Webseiten
- Schützt vor Malware und Phishing
- Funktioniert mit allen Geräten im Netzwerk
- Detaillierte Statistiken und Logging
2. Systemvoraussetzungen
| Komponente | Minimum | Empfohlen |
|---|---|---|
| Raspberry Pi Modell | Pi 2 Model B | Pi 4 Model B (2GB+) |
| RAM | 512 MB | 2 GB oder mehr |
| Storage | 8 GB microSD | 32 GB microSD (Class 10) |
| Netzwerk | 10/100 Ethernet oder WLAN | Gigabit Ethernet |
Unterstützte Betriebssysteme:
- Raspberry Pi OS (Bullseye oder neuer)
- Ubuntu 20.04 LTS oder neuer
- Debian 11 (Bullseye) oder neuer
Benötigte Netzwerk-Ports:
| Port | Protokoll | Zweck | Firewall |
|---|---|---|---|
| 53 | TCP/UDP | DNS-Anfragen | Öffnen erforderlich |
| 80 | TCP | Web-Interface (HTTP) | Öffnen empfohlen |
| 443 | TCP | Web-Interface (HTTPS) | Optional |
| 4711 | TCP | FTL API | Intern |
3. Vorbereitung
System aktualisieren
Stellen Sie zunächst sicher, dass Ihr Raspberry Pi auf dem neuesten Stand ist:
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
Statische IP-Adresse einrichten
Pi-hole benötigt eine statische IP-Adresse. Bearbeiten Sie die DHCP-Konfiguration:
sudo nano /etc/dhcpcd.conf
Fügen Sie am Ende der Datei folgende Zeilen hinzu (passen Sie die IP-Adressen an Ihr Netzwerk an):
interface eth0
static ip_address=192.168.1.100/24
static routers=192.168.1.1
static domain_name_servers=1.1.1.1 8.8.8.8
Abhängigkeiten installieren
Installieren Sie die erforderlichen Pakete:
sudo apt install curl wget git dialog -y
System neustarten
sudo reboot
4. Installation
Pi-hole Installer herunterladen und ausführen
Laden Sie das offizielle Pi-hole Installationsskript herunter:
curl -sSL https://install.pi-hole.net | bash
Alternativ können Sie das Skript erst herunterladen und dann prüfen:
wget -O basic-install.sh https://install.pi-hole.net
less basic-install.sh
sudo bash basic-install.sh
Installationsassistent durchlaufen
Der interaktive Installer führt Sie durch folgende Schritte:
- Willkommensnachricht: Bestätigen Sie mit „OK“
- Spenden-Hinweis: Bestätigen Sie mit „OK“
- Netzwerk-Interface: Wählen Sie Ihr Netzwerk-Interface (meist eth0 oder wlan0)
- Upstream DNS Provider: Wählen Sie einen DNS-Anbieter (empfohlen: Cloudflare oder Quad9)
- Blocklists: Aktivieren Sie die Standard-Blocklisten
- Admin Web Interface: Aktivieren Sie das Web-Interface
- Web Server: Installieren Sie den Webserver (lighttpd)
- Logging: Aktivieren Sie das Query-Logging
- Privacy Mode: Wählen Sie den gewünschten Privacy-Level
5. Konfiguration
Admin-Passwort setzen
Falls Sie das Passwort ändern möchten:
pihole -a -p
Zusätzliche Blocklisten hinzufügen
Beliebte Blocklisten können über das Web-Interface oder die Kommandozeile hinzugefügt werden:
# Beispiel: StevenBlack's Hosts-Liste
pihole -w adlist add https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
# Blocklisten aktualisieren
pihole -g
Whitelist und Blacklist konfigurieren
Domains zur Whitelist hinzufügen:
pihole -w example.com
Domains zur Blacklist hinzufügen:
pihole -b ads.example.com
6. Firewall-Regeln setzen
UFW Firewall konfigurieren
Falls UFW installiert ist, öffnen Sie die erforderlichen Ports:
# UFW aktivieren
sudo ufw enable
# Pi-hole Ports öffnen
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# SSH-Zugang sicherstellen
sudo ufw allow ssh
# Status prüfen
sudo ufw status
iptables Regeln (falls UFW nicht verwendet wird)
# DNS Port öffnen
sudo iptables -A INPUT -p tcp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 53 -j ACCEPT
# Web-Interface öffnen
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# Regeln speichern
sudo iptables-save > /etc/iptables/rules.v4
7. Dienst starten und beim Systemstart aktivieren
Pi-hole sollte automatisch gestartet werden. Prüfen Sie den Status:
# Pi-hole Status prüfen
pihole status
# FTL Status prüfen
sudo systemctl status pihole-FTL
# Dienste beim Boot aktivieren
sudo systemctl enable pihole-FTL
sudo systemctl enable lighttpd
Dienste manuell starten/stoppen
# Pi-hole starten
sudo systemctl start pihole-FTL
# Pi-hole stoppen
sudo systemctl stop pihole-FTL
# Pi-hole neustarten
sudo systemctl restart pihole-FTL
8. Installation verifizieren
Web-Interface testen
Öffnen Sie einen Browser und navigieren Sie zu:
http://[IP-ADRESSE]/admin- Beispiel:
http://192.168.1.100/admin
DNS-Funktionalität testen
# DNS-Auflösung testen
nslookup google.com [PI-HOLE-IP]
# Beispiel:
nslookup google.com 192.168.1.100
# Pi-hole Query-Test
dig @192.168.1.100 google.com
Werbeblocker testen
# Test einer bekannten Werbe-Domain
nslookup doubleclick.net 192.168.1.100
Die Antwort sollte 0.0.0.0 oder eine ähnliche blockierte Adresse sein.
Router-Konfiguration
Konfigurieren Sie Ihren Router, um Pi-hole als DNS-Server zu verwenden:
- Loggen Sie sich in Ihr Router-Interface ein
- Navigieren Sie zu den DHCP/DNS-Einstellungen
- Setzen Sie den Primary DNS auf die IP-Adresse Ihres Pi-hole
- Setzen Sie den Secondary DNS auf einen Backup-Server (z.B. 1.1.1.1)
- Speichern Sie die Einstellungen und starten Sie den Router neu
9. Troubleshooting
Häufige Fehler und Lösungen
Problem: Pi-hole blockiert alle DNS-Anfragen
Symptom: Keine Internetverbindung nach Pi-hole Installation
Lösung:
# Upstream DNS-Server prüfen
pihole -a -t
# DNS-Konfiguration reparieren
sudo pihole -r
Problem: Web-Interface nicht erreichbar
Symptom: Admin-Panel lädt nicht
Lösung:
# Lighttpd Status prüfen
sudo systemctl status lighttpd
# Lighttpd neu starten
sudo systemctl restart lighttpd
# Ports prüfen
sudo netstat -tlnp | grep :80
Problem: Hohe CPU-Last
Symptom: System läuft langsam, hohe CPU-Auslastung
Lösung:
# Query-Logging reduzieren
pihole -l off
# Log-Rotation konfigurieren
sudo nano /etc/logrotate.d/pihole
# FTL neu starten
sudo systemctl restart pihole-FTL
Problem: Blocklisten werden nicht aktualisiert
Lösung:
# Manuelle Aktualisierung
pihole -g
# Berechtigungen prüfen
sudo chown -R pihole:pihole /etc/pihole/
# Cron-Job prüfen
sudo crontab -u pihole -l
Log-Dateien für Debugging
# Pi-hole Logs anzeigen
pihole -t
# FTL Debug-Informationen
pihole -d
# System-Logs prüfen
sudo journalctl -u pihole-FTL --since "1 hour ago"
Netzwerk-Debugging
# Netzwerk-Konfiguration prüfen
ip addr show
ip route show
# DNS-Server testen
dig @127.0.0.1 google.com
dig @1.1.1.1 google.com
10. Updates und Wartung
Pi-hole aktualisieren
# Pi-hole auf neueste Version aktualisieren
pihole -up
# Nur Core aktualisieren
pihole -up --check-only
Blocklisten aktualisieren
# Alle Blocklisten aktualisieren
pihole -g
# Automatische Updates via Cron (täglich um 3:30 Uhr)
sudo crontab -e
# Folgende Zeile hinzufügen:
# 30 3 * * * /usr/local/bin/pihole -g >/dev/null 2>&1
Backup erstellen
# Konfiguration sichern
pihole -a -t > pihole-backup.txt
# Komplettes Backup
sudo tar -czf pihole-backup-$(date +%Y%m%d).tar.gz /etc/pihole/ /opt/pihole/
Regelmäßige Wartungsaufgaben
- Prüfen Sie monatlich auf Pi-hole Updates
- Überwachen Sie die Speichernutzung der Logs
- Erstellen Sie regelmäßig Backups der Konfiguration
- Prüfen Sie die Netzwerk-Performance
- Aktualisieren Sie das Basis-Betriebssystem
11. Fazit und nächste Schritte
Sie haben erfolgreich Pi-hole auf Ihrem Raspberry Pi installiert und konfiguriert. Ihr Netzwerk ist jetzt vor Werbung und Trackern geschützt.
Empfohlene nächste Schritte:
- Überwachung einrichten: Nutzen Sie das Web-Interface zur Überwachung der DNS-Anfragen
- Erweiterte Blocklisten: Fügen Sie zusätzliche, spezialisierte Blocklisten hinzu
- HTTPS aktivieren: Richten Sie SSL-Zertifikate für das Web-Interface ein
- Unbound installieren: Für zusätzliche Privatsphäre einen rekursiven DNS-Server einrichten
- Failover konfigurieren: Einen zweiten Pi-hole als Backup einrichten
- VPN Integration: Pi-hole mit einem VPN kombinieren für Schutz außerhalb des Heimnetzwerks
Weiterführende Ressourcen:
- Offizielle Pi-hole Dokumentation: https://docs.pi-hole.net/
- Pi-hole Community Forum: https://discourse.pi-hole.net/
- GitHub Repository: https://github.com/pi-hole/pi-hole