CT 117 – Technitium DNS

Note

CT 117 hostet den Technitium DNS Server – DNS-Resolver mit umfassendem Ad/Tracker/Malware-Blocking, DoH-Upstream und Web-UI. Läuft parallel zu Pi-hole (CT 110).

Basisdaten

Eigenschaft Wert
CT-ID 117
Name technitium-dns
IP 192.168.178.87
OS Debian 12 (Bookworm)
RAM 512 MB
Disk 4 GB
Web-UI http://192.168.178.87:5380
DNS-Port 53 (UDP + TCP)
Service dns.service
Konfig-Pfad /etc/dns/

Zweck

Technitium DNS ersetzt oder ergänzt Pi-hole mit:

  • DNS-over-HTTPS (DoH) upstream zu Cloudflare + Quad9
  • Blocklisten gegen Werbung, Tracker, Malware und Phishing
  • DNSSEC-Validierung für alle Antworten
  • Web-UI mit Statistiken, Query-Log, Zonen-Editor

Blocklisten

Vier aktive Listen, täglich automatisch aktualisiert:

Liste URL Fokus
OISD Big https://big.oisd.nl Ads, Tracker – wenig False Positives
HaGeZi Multi Pro++ hagezi/dns-blocklists Umfassend: Ads + Tracker + Malware
URLhaus urlhaus.abuse.ch Aktive Malware-Domains
HaGeZi TIF hagezi/dns-blocklists Threat Intelligence Feeds

Blocklisten-Dateien lokal unter /etc/dns/blocklists/ (~48 MB).


DNS-Konfiguration

Einstellung Wert
Upstream Cloudflare DoH + Quad9 DoH
Forwarder-Protokoll HTTPS (DoH)
Concurrent Forwarding aktiv
Blocking-Typ NxDomain
DNSSEC aktiv
QNAME Minimization aktiv (Privatsphäre)
Name Randomization aktiv (Anti-Poisoning)
Recursion nur private Netzwerke
Cache 100.000 Einträge mit Prefetch
Query-Log aktiv

Bedienung – Web-UI

Öffne http://192.168.178.87:5380 im Browser.

Dashboard

  • Echtzeit-Statistiken: Queries, geblockte Domains, Cache-Trefferquote
  • Query-Log mit Filter nach Client, Domain, Typ

Domains manuell blockieren / erlauben

  1. Blocking > Allowed/Blocked im Menü
  2. Domain eingeben → Save
  3. Sofort aktiv, kein Neustart nötig

Lokale DNS-Zonen anlegen

  1. Zones > Add Zone
  2. Zone-Typ: Primary
  3. Records hinzufügen (A, CNAME, etc.)

Blocklisten verwalten

  1. Settings > Blocking
  2. URLs eintragen oder entfernen
  3. "Force Update" Button → sofortiger Download

Überwachung

Service-Status prüfen

pct exec 117 -- systemctl status dns.service

Ports prüfen

pct exec 117 -- ss -tlnp | grep -E "53|5380"

DNS-Auflösung testen

# Legitime Domain (sollte auflösen)
dig @192.168.178.87 google.com +short

# Bekannte Ad-Domain (sollte NXDOMAIN zurückgeben)
dig @192.168.178.87 doubleclick.net

# DNSSEC-Test
dig @192.168.178.87 sigok.verteiltesysteme.net +dnssec

Blocklisten-Größe prüfen

pct exec 117 -- du -sh /etc/dns/blocklists/

Logs ansehen

pct exec 117 -- ls /etc/dns/logs/
pct exec 117 -- tail -50 /etc/dns/logs/$(date +%Y%m%d).log

Wartung

Technitium updaten

pct exec 117 -- bash -c "curl -sSL https://download.technitium.com/dns/install.sh | bash"

Das Script erkennt bestehende Installationen und updated in-place. Config bleibt erhalten.

Blocklisten manuell aktualisieren

Via API:

curl -X POST "http://192.168.178.87:5380/api/settings/forceUpdateBlockLists" \
  -d "token=<API-TOKEN>"

Via Web-UI: Settings → Blocking → Force Update

API-Token holen

curl -s "http://192.168.178.87:5380/api/user/login?user=admin&pass=<PASSWORT>" \
  | python3 -c "import sys,json; print(json.load(sys.stdin)['token'])"

Service neu starten

pct exec 117 -- systemctl restart dns.service

Config-Backup

pct exec 117 -- tar czf /tmp/dns-config-backup.tar.gz /etc/dns/
# Dann auf Host kopieren:
pct pull 117 /tmp/dns-config-backup.tar.gz /root/backups/dns-config-$(date +%Y%m%d).tar.gz

Schnellreferenz API

Aktion Endpoint
Login / Token GET /api/user/login?user=admin&pass=...
Settings lesen GET /api/settings/get?token=...
Settings setzen POST /api/settings/set
Blocklisten updaten POST /api/settings/forceUpdateBlockLists
Zone anlegen POST /api/zones/create
DNS Record hinzufügen POST /api/zones/records/add
Query-Log GET /api/queryLogs/list?token=...

Prüfung

# Container läuft?
pct status 117

# Web-UI erreichbar?
curl -s http://192.168.178.87:5380 | grep -i technitium

# DNS funktioniert?
dig @192.168.178.87 google.com +short

# Blocking aktiv?
dig @192.168.178.87 doubleclick.net | grep NXDOMAIN
Tip

Wenn ein Gerät im Netz Technitium als DNS-Server nutzen soll: statische DNS 192.168.178.87 in Router-DHCP oder am Gerät direkt eintragen.

Warning

CT 110 (Pi-hole, 192.168.178.78) läuft parallel. Nicht beide als DNS-Server gleichzeitig auf einem Gerät eintragen – das führt zu unvorhersehbarem Verhalten bei der Blocklist-Abdeckung.