Commit 0e06c9

2026-04-12 23:48:20 xclusive: humanized
ct-117-technitium-dns.md ..
@@ 1,7 1,7 @@
# 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).
+ > CT 117 hostet aktuell den **Technitium DNS Server**. Er ist über `dns.ls-cloud.biz` öffentlich für die Web-UI erreichbar und dient als aktueller DNS-/Resolver-Kandidat im Setup.
## Basisdaten
@@ 10,200 10,29 @@
| **CT-ID** | `117` |
| **Name** | `technitium-dns` |
| **IP** | `192.168.178.87` |
- | **OS** | Debian 12 (Bookworm) |
- | **RAM** | 512 MB |
+ | **OS** | Debian 12 |
| **Disk** | 4 GB |
- | **Web-UI** | `http://192.168.178.87:5380` |
- | **DNS-Port** | `53` (UDP + TCP) |
- | **Service** | `dns.service` |
- | **Konfig-Pfad** | `/etc/dns/` |
+ | **Web-UI intern** | `http://192.168.178.87:5380` |
+ | **Web-UI extern** | `https://dns.ls-cloud.biz` |
+ | **DNS-Port** | `53/tcp`, `53/udp` |
+ | **Dienst** | `dns.service` |
- ---
+ ## Operative Einordnung
- ## Zweck
+ - Caddy zeigt `dns.ls-cloud.biz` aktuell auf **`192.168.178.87:5380`**
+ - Die Web-UI ist damit nicht mehr nur intern relevant, sondern Teil der öffentlichen Domain-Matrix
- 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
-
- ```bash
- pct exec 117 -- systemctl status dns.service
- ```
-
- ### Ports prüfen
-
- ```bash
- pct exec 117 -- ss -tlnp | grep -E "53|5380"
- ```
-
- ### DNS-Auflösung testen
-
- ```bash
- # 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
-
- ```bash
- pct exec 117 -- du -sh /etc/dns/blocklists/
- ```
-
- ### Logs ansehen
-
- ```bash
- pct exec 117 -- ls /etc/dns/logs/
- pct exec 117 -- tail -50 /etc/dns/logs/$(date +%Y%m%d).log
- ```
-
- ---
-
- ## Wartung
-
- ### Technitium updaten
-
- ```bash
- 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:**
- ```bash
- 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
-
- ```bash
- 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
-
- ```bash
- pct exec 117 -- systemctl restart dns.service
- ```
-
- ### Config-Backup
-
- ```bash
- 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
```bash
- # 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
+ pct exec 117 -- systemctl status dns.service
+ pct exec 117 -- ss -ltnup | grep -E '53|5380'
+ curl -k -I https://dns.ls-cloud.biz
```
- > [!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.
+ ## Hinweise
- > [!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.
+ > [!TIP]
+ > Für die operative Doku ist vor allem wichtig: **Domain → CT 117 → Port 5380**. Detail-Tuning zu Blocklisten oder Upstream-DNS kann separat gepflegt werden, wenn daran aktiv gearbeitet wird.
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9