Skip to main content

💾 Unbound installieren

⚙️ Unbound – Installation und Einrichtung mit Pi-hole


🧩 Installation von Unbound

Sobald Pi-hole einwandfrei funktioniert, kannst du Unbound installieren:

sudo pacman -Sy --needed unbound

📁 Log-Verzeichnis anlegen

Lege ein Unbound-Log-Verzeichnis an und setze die korrekten Berechtigungen:

sudo mkdir -p /var/log/unbound/
sudo chown -R unbound:unbound /var/log/unbound/

💡 Hinweis:
Es wird empfohlen, die Hauptkonfigurationsdatei von Unbound nicht direkt zu bearbeiten.
Lege stattdessen eine separate Datei, z.B. pi-hole.conf,
im Verzeichnis /etc/unbound/unbound.conf.d/ an.
So kannst du mehrere Konfigurationsdateien sauber trennen.

Falls das Verzeichnis noch nicht existiert, erstelle es mit:

sudo mkdir -p /etc/unbound/unbound.conf.d/

📝 Neue Unbound-Konfigurationsdatei erstellen

sudo nano /etc/unbound/unbound.conf.d/pi-hole.conf

👉 Füge den folgenden Inhalt als Vorlage ein, passe die forward-zone an und überprüfe die anderen Einstellungen.

server:
    # If no logfile is specified, syslog is used
    # (e.g. 'journalctl -u unbound' or 'journalctl -u unbound -p err')
    # logfile: "/var/log/unbound/unbound.log"
    verbosity: 0

    directory: "/etc/unbound"
    username: unbound  # root only for testing!

    interface: 127.0.0.1
    interface: ::1
    port: 5335
    do-ip4: yes
    do-udp: yes
    do-tcp: yes

> Hinweis zu Fritz!Box + Telekom DSL:  
> Dieses Setup unterstützt IPv6-Kommunikation im lokalen Netzwerk.  
> Die Fritz!Box ist so konfiguriert, dass „IPv6-Unterstützung aktiv“ ist  
> und „Native IPv4-Anbindung verwenden“ gewählt wurde.  
>  
> Damit nutzt du echtes Dual Stack (IPv4 + IPv6) –  
> die beste Variante, solange dein Anbieter beides unterstützt.  
> Die Fritz!Box agiert als DNS-Mittler und leitet Anfragen an den Pi-hole weiter.  
>  
> Auch mit `do-ip6: no` kann die Fritz!Box weiterhin IPv6-Anfragen verarbeiten  
> oder an einen anderen Server weiterleiten.  
>  
> Teste dies z.B. mit: `dig AAAA example.com`  
> In der Antwort sollte die Fritz!Box als SERVER erscheinen und  
> im ANSWER-Abschnitt gültige IPv6-Adressen enthalten.

    # May be set to yes if you have IPv6 connectivity
    do-ip6: yes
    prefer-ip6: no

    root-hints: "/etc/unbound/root.hints"
    auto-trust-anchor-file: "/etc/unbound/trusted-key.key"
    harden-glue: yes
    harden-dnssec-stripped: yes
    hide-identity: yes
    hide-version: yes
    qname-minimisation: yes
    use-caps-for-id: no
    edns-buffer-size: 1232
    prefetch: yes
    num-threads: 1
    so-rcvbuf: 524288

    private-address: 192.168.0.0/16
    private-address: 169.254.0.0/16
    private-address: 172.16.0.0/12
    private-address: 10.0.0.0/8
    private-address: fd00::/8
    private-address: fe80::/10

    num-queries-per-thread: 300

    forward-zone:
      name: "fritz.box"
      forward-addr: <DEINE-IP>@53

Nach dem Speichern sollten die Berechtigungen angepasst werden:

sudo chmod 644 /etc/unbound/unbound.conf.d/pi-hole.conf

🔑 Root Trust Anchors für DNSSEC laden

Dieser Befehl lädt und aktualisiert die Root-Trust-Anchors für DNSSEC,
die Unbound zur Validierung der Authentizität von DNS-Antworten benötigt:

sudo unbound-anchor -a /etc/unbound/trusted-key.key

Testen:

sudo unbound-anchor -v

Erwartete Ausgabe:

/etc/trusted-key.key has content
success: the anchor is ok

📂 Berechtigungen anpassen

Wichtig:
Berechtigungen für den Ordner sowie alle Dateien und Unterverzeichnisse
rekursiv für den Benutzer unbound festlegen:

sudo chown -R unbound:unbound /etc/unbound

⚙️ Hauptkonfigurationsdatei anpassen

Öffne die Hauptdatei:

sudo nano /etc/unbound/unbound.conf

Ersetze den Inhalt durch:

# Unbound configuration file
#
# The following line includes additional configuration files from the
# /etc/unbound/unbound.conf.d directory.
include-toplevel: "/etc/unbound/unbound.conf.d/*.conf"