Kapitel 2/Free Rohtext.md aktualisiert

This commit is contained in:
2025-10-02 12:10:24 +00:00
parent 389b7184d0
commit f8c53eae49

View File

@@ -218,3 +218,262 @@ Am Ende zeigt das Skript eine Übersicht und bestätigt die Installation.
> Nach Abschluss der Installation erhältst du die **Admin-Weboberfläche** von Pi-hole und ein **Web-Admin-Passwort**.
> Dieses Passwort unbedingt notieren ohne kannst du dich später nicht anmelden.
### Installation Unbound
#### Was ist Unbound?
Unbound ist ein sogenannter **rekursiver DNS-Resolver**.
Im Gegensatz zu externen DNS-Anbietern (z. B. Google 8.8.8.8 oder Cloudflare 1.1.1.1) löst Unbound deine DNS-Anfragen **selbstständig** auf.
Das bedeutet:
1. Unbound fragt direkt bei den **Root-Servern** des Internets nach.
2. Von dort bekommt er die Adresse der zuständigen **Top-Level-Domain-Server** (z. B. `.com`).
3. Dann fragt er bei diesen nach dem **autoritativen Server** für die gesuchte Domain (z. B. `example.com`).
4. Schließlich liefert Unbound die endgültige IP-Adresse zurück.
Damit fallen externe DNS-Dienste komplett weg.
Alle Auflösungen passieren lokal in deinem Netzwerk.
Das sorgt für **mehr Privatsphäre** und macht dich unabhängiger von Dritten.
👉 *Screenshot geeignet: Netzwerkaufbau mit und ohne Unbound links der Weg über externe DNS-Server, rechts der direkte Weg über Unbound mit Root-Servern.*
> [!NOTE]
> Der **erste Aufruf einer Domain** kann über Unbound etwas länger dauern, da die komplette Kette abgefragt werden muss.
> Danach wird das Ergebnis zwischengespeichert (Caching), sodass weitere Aufrufe sofort beantwortet werden.
---
#### Unbound installieren
Unbound wird über die Paketverwaltung installiert:
```bash
apt install unbound -y
```
Zusätzlich benötigt Unbound die Root-Hints, also die Adressen der Root-Server des Internets:
```bash
wget https://www.internic.net/domain/named.cache -O /var/lib/unbound/root.hints
```
---
#### Unbound konfigurieren
Jetzt erstellen wir eine Konfigurationsdatei, die speziell auf Pi-hole abgestimmt ist:
```bash
nano /etc/unbound/unbound.conf.d/pi-hole.conf
```
Folgenden Inhalt einfügen:
```bash
server:
verbosity: 0
interface: 127.0.0.1
port: 5335
do-ip4: yes
do-udp: yes
do-tcp: yes
do-ip6: yes
root-hints: "/var/lib/unbound/root.hints"
harden-glue: yes
harden-dnssec-stripped: yes
use-caps-for-id: no
edns-buffer-size: 1232
prefetch: yes
num-threads: 2
so-rcvbuf: 1m
```
- **interface 127.0.0.1 & port 5335** → Unbound lauscht nur lokal und nicht im gesamten Netzwerk, was die Sicherheit erhöht.
- **root-hints** → verweist auf die Root-Server-Datei.
- **harden-Optionen** → sorgen für zusätzliche Sicherheit und DNSSEC-Unterstützung.
- **prefetch** → häufig angefragte Domains werden im Cache aktuell gehalten.
Datei speichern mit **Strg+O**, Enter → Beenden mit **Strg+X**.
---
#### Unbound starten
Unbound aktivieren und starten:
```bash
systemctl enable unbound
systemctl restart unbound
systemctl status unbound
```
> [!TIP]
> Wenn alles funktioniert, zeigt der Status **active (running)**.
> Falls Fehler auftreten, können sie mit `journalctl -xe` angezeigt werden.
#### Unbound testen
Bevor wir Pi-hole mit Unbound verbinden, prüfen wir, ob Unbound korrekt läuft.
Dafür nutzen wir das Tool `dig`, das DNS-Abfragen testet.
Falls es noch nicht installiert ist:
```bash
apt install dnsutils -y
```
Jetzt eine Testabfrage direkt an Unbound:
```bash
dig @127.0.0.1 -p 5335 example.com
```
Wichtige Punkte in der Ausgabe:
- **Status: NOERROR** → bedeutet, die Domain wurde erfolgreich aufgelöst.
- **SERVER: 127.0.0.1#5335** → zeigt, dass Unbound selbst geantwortet hat.
- **ANSWER SECTION** enthält die IP-Adresse von `example.com`.
👉 *Screenshot geeignet: Terminalausgabe eines erfolgreichen dig-Befehls.*
> [!NOTE]
> Beim **ersten Aufruf einer Domain** dauert die Antwort etwas länger, da Unbound den kompletten Weg von den Root-Servern bis zur Ziel-Domain abfragt.
> Jeder weitere Aufruf ist sofort im Cache und dadurch schneller.
### Erster Login in die Pi-hole Weboberfläche
Nach der Installation von Pi-hole erreichen wir die Weboberfläche im Browser:
```
http://192.168.1.5/admin
```
👉 *Screenshot geeignet: Loginseite der Pi-hole Weboberfläche.*
Das Passwort wurde am Ende der Installation im Terminal angezeigt.
Falls du es nicht notiert hast, kannst du es im Container neu setzen:
```bash
pihole -a -p
```
#### Blocklisten & Whitelist einrichten
Die meiste Arbeit erledigen wir bequem in der Pi-hole Weboberfläche.
1. **Blocklisten hinzufügen**
- Menü öffnen: **Group Management → Adlists**
- Jede URL einzeln eintragen und als Gruppe **Default** auswählen.
- Mit **Add** bestätigen.
Empfehlenswerte Listen:
```
https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/tif.txt
https://big.oisd.nl
https://v.firebog.net/hosts/lists.php?type=tick
https://v.firebog.net/hosts/lists.php?type=malware
https://o0.pages.dev/Pro/adblock.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.plus.mini.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.mini.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.txt
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/multi.txt
https://adaway.org/hosts.txt
https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt
https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/android-tracking.txt
https://raw.githubusercontent.com/hoshsadiq/adblock-nocoin-list/master/hosts.txt
https://v.firebog.net/hosts/Prigent-Ads.txt
https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt
```
👉 *Screenshot geeignet: Adlists-Seite mit mehreren eingetragenen Listen.*
2. **Listen aktualisieren (Gravity Update)**
- Menü: **Tools → Update Gravity**
- Button **Update** anklicken.
- Nach kurzer Zeit ist die Datenbank aktualisiert.
👉 *Screenshot geeignet: Update Gravity mit Fortschrittsanzeige.*
3. **Wichtige Dienste freigeben (Whitelist)**
- Menü: **Group Management → Domains → Whitelist**
- Beispiele für Regex-Einträge, um WhatsApp oder Facebook zuverlässig freizugeben:
```
(^|\.)whatsapp\.com$
(^|\.)facebook\.com$
```
👉 *Screenshot geeignet: Domain-Management mit Regex-Whitelist.*
> [!TIP]
> Fast alles in Pi-hole lässt sich über die Weboberfläche erledigen.
> Das Terminal ist nur Plan B, falls die GUI mal nicht erreichbar ist.
#### Logging
Unter **Settings → Privacy** stellst du ein, wie Pi-hole mit Logs umgeht:
- **Anonymous mode** (empfohlen): Anfragen werden gezählt, aber ohne Client-IP gespeichert.
- **Show everything**: nur nutzen, wenn du detaillierte Fehleranalysen machen willst.
👉 *Screenshot geeignet: Auswahlfeld „Privacy mode“.*
#### Upstream-DNS auf Unbound setzen
Jetzt verbinden wir Pi-hole mit unserem lokalen Resolver:
1. Gehe zu **Settings → DNS**.
2. Entferne alle externen Upstream-Server (Cloudflare, Google usw.).
3. Trage stattdessen ein:
```
127.0.0.1#5335
```
4. Speichern.
👉 *Screenshot geeignet: Pi-hole DNS-Konfiguration mit 127.0.0.1#5335.*
### Router auf Pi-hole umstellen
Damit Pi-hole Anfragen bearbeiten kann, müssen wir den DNS-Server im Netzwerk ändern.
Dafür gibt es zwei Möglichkeiten:
1. **Am Router (empfohlen)**
- Im Router-Interface den Bereich **Netzwerk / DHCP / DNS-Server** öffnen.
- Als primären DNS-Server die feste IP des Containers eintragen (z. B. `192.168.1.5`).
- Speichern und Router kurz neu starten.
👉 *Screenshot geeignet: Router-Einstellung DNS-Server.*
> [!TIP]
> So nutzt jedes Gerät im Netzwerk automatisch Pi-hole, ohne dass man sie einzeln konfigurieren muss.
2. **Am einzelnen Gerät (für Tests)**
- In den Netzwerkeinstellungen des PCs oder Smartphones manuell als DNS-Server `192.168.1.5` eintragen.
- Verbindung trennen und neu verbinden.
### Funktion prüfen
- Öffne eine Webseite am PC/Smartphone, das den neuen DNS-Server nutzt.
- Im Pi-hole-Dashboard (**http://192.168.1.5/admin**) sollten jetzt die ersten Anfragen sichtbar sein.
- Dort erkennst du: Blockierte Anfragen, durchgelassene Anfragen und die Gesamtzahl.
👉 *Screenshot geeignet: Pi-hole Dashboard mit ersten Anfragen.*
## Ergebnis
Wir haben nun ein funktionierendes System aus **Pi-hole und Unbound** in einem einzigen Container:
- Pi-hole filtert Werbung und Tracking netzwerkweit.
- Unbound löst alle DNS-Anfragen rekursiv auf direkt von den Root-Servern bis zur Ziel-Domain.
- Durch die Kombination sind wir unabhängig von externen DNS-Anbietern und behalten die volle Kontrolle über unsere Daten.
- Blocklisten sorgen für eine starke Filterwirkung, Regex-Whitelist-Einträge stellen sicher, dass wichtige Dienste wie WhatsApp oder Facebook weiterhin nutzbar bleiben.
- Über die Weboberfläche können alle Einstellungen komfortabel gepflegt und jederzeit erweitert werden.
👉 *Screenshot geeignet: Pi-hole Dashboard mit laufenden Statistiken (Anfragen gesamt, blockierte Anfragen, verwendete Listen).*
> [!NOTE]
> **Nicht alle Werbung kann gefiltert werden.**
> Dienste wie YouTube oder Spotify liefern Werbung über dieselben Server wie die eigentlichen Inhalte.
> Pi-hole kann solche Werbung nicht zuverlässig blockieren, ohne auch die Inhalte selbst zu unterbrechen.
> [!TIP]
> Ab jetzt läuft die gesamte DNS-Auflösung deines Heimnetzes durch Pi-hole + Unbound.
> Jede Anfrage, die im Dashboard erscheint, bestätigt: dein Netzwerk filtert erfolgreich.
## Ausblick
Im nächsten Kapitel kümmern wir uns um den **Nginx Proxy Manager (NPM)**.
Damit stellen wir die Weichen, um alle unsere Dienste sicher und übersichtlich nach außen verfügbar zu machen mit HTTPS-Zertifikaten und zentralem Zugriffspunkt.