CT 117 – Technitium DNS
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
- Blocking > Allowed/Blocked im Menü
- Domain eingeben → Save
- Sofort aktiv, kein Neustart nötig
Lokale DNS-Zonen anlegen
- Zones > Add Zone
- Zone-Typ:
Primary - Records hinzufügen (A, CNAME, etc.)
Blocklisten verwalten
- Settings > Blocking
- URLs eintragen oder entfernen
- "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
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.
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.
