Commit 35c0fe

2026-04-08 16:26:55 Claude: Add CT 117 Technitium DNS documentation
/dev/null .. ct-117-technitium-dns.md
@@ 0,0 1,209 @@
+ # 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
+
+ ```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
+ ```
+
+ > [!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.
home.md ..
@@ 1,40 1,104 @@
# LSCloud Wiki
- Willkommen im Infrastruktur-Wiki für `lscloud`.
-
- ## Einstieg
-
- - [[lscloud-inventur]]
- - [[services-uebersicht]]
-
- ## Container-Dokumentation
-
- | CT | Name | Status | Seite |
- |---|---|---|---|
- | 100 | guacamole | gestoppt | [[ct-100-guacamole]] |
- | 101 | jellyfin | läuft | [[ct-101-jellyfin]] |
- | 102 | pbs | läuft | [[ct-102-pbs]] |
- | 103 | fileserver | läuft | [[ct-103-fileserver]] |
- | 104 | immich | läuft | [[ct-104-immich]] |
- | 105 | downloads | läuft | [[ct-105-downloads]] |
- | 106 | openclaw | gestoppt | [[ct-106-openclaw]] |
- | 107 | monitoring | gestoppt | [[ct-107-monitoring]] |
- | 108 | wiki | läuft | [[ct-108-wiki]] |
- | 109 | claw | läuft | [[ct-109-claw]] |
- | 110 | dns | läuft | [[ct-110-dns]] |
+ > [!NOTE]
+ > Dieses Wiki ist der operative Einstieg für `lscloud`: schnell finden, sauber prüfen, ohne erst in Dateifriedhöfen zu wühlen.
+
+ ## Start hier
+
+ ### Wenn du etwas suchst
+ - [[services-uebersicht]] — Welche Domain zeigt worauf?
+ - [[container-und-vms]] — Was läuft, was ist gestoppt?
+ - [[netz-und-domains]] — Welche IPs, welche Domains, welche Ziele?
+
+ ### Wenn du etwas tun willst
+ - [[operativer-einstieg]] — womit bei Problemen sinnvoll anfangen
+ - [[runbooks]] — wiederkehrende Eingriffe und Grundregeln
+ - [[stoerungen-und-fehlerbilder]] — typische Ausfälle und Prüfpfade
+ - [[tmux]] — Sessions sauber anlegen und wiederfinden
+
+ ### Wenn du direkt die Kernsysteme brauchst
+ - [[ct-108-wiki]]
+ - [[ct-110-dns]]
+ - [[ct-117-technitium-dns]]
- [[ct-113-cs16]]
- | 111 | webserver | läuft | [[ct-111-webserver]] |
- | 112 | claude-code | läuft | [[ct-112-claude-code]] |
- | 113 | cs16 | läuft | [[ct-113-cs16]] |
+ - [[ct-114-games]]
+ - [[vm-200-windows11pro]]
- ## Virtuelle Maschinen
+ ## Aktuelle Lage kompakt
- | VM | Name | Status |
+ | Bereich | Aktuell wichtig | Kurzbild |
|---|---|---|
- | 200 | Windows11Pro | gestoppt |
+ | Core | CT 108 `wiki`, CT 109 `claw`, CT 110 `dns` | Infrastrukturkern |
+ | Medien | CT 101 `jellyfin`, CT 103 `fileserver`, CT 104 `immich` | Inhalte & Daten |
+ | Spezialdienste | CT 112 `terminal`, CT 113 `cs16`, CT 114 `games` | Browser-/Spezialdienste |
+ | Admin | Host, PBS, Proxmox, VM 200 `Windows11Pro` | Betrieb & Wartung |
+
+ ## Navigationsindex
+
+ > [!TIP]
+ > Der folgende Index nutzt OtterWiki direkt als Seitenverzeichnis. So lässt sich der Bestand schneller durchstöbern als über bloße Linklisten.
+
+ {{PageIndex
+ |src=*
+ |toc=false
+ |toggle=false
+ }}
+
+ ## Plattform-Architektur
+
+ ```mermaid
+ flowchart TB
+ classDef ingress fill:#0f172a,stroke:#64748b,color:#f8fafc,stroke-width:1px;
+ classDef core fill:#1e293b,stroke:#94a3b8,color:#f8fafc,stroke-width:1px;
+ classDef media fill:#1f2937,stroke:#6b7280,color:#f8fafc,stroke-width:1px;
+ classDef app fill:#312e81,stroke:#818cf8,color:#eef2ff,stroke-width:1px;
+ classDef aux fill:#3f3f46,stroke:#a1a1aa,color:#fafafa,stroke-width:1px;
+
+ Users[Clients / Browser / Apps]:::ingress --> Caddy[Caddy
+ TLS / Reverse Proxy]:::ingress
+
+ subgraph Core[Core-Infrastruktur]
+ Admin[Proxmox Admin]:::core
+ Wiki[CT 108 Wiki]:::core
+ DNS[CT 110 DNS]:::core
+ Claw[CT 109 Claw]:::core
+ end
+
+ subgraph Media[Medien & Daten]
+ Files[CT 103 Fileserver]:::media
+ Jellyfin[CT 101 Jellyfin]:::media
+ Immich[CT 104 Immich]:::media
+ Downloads[CT 105 Downloads]:::media
+ Web[CT 111 Webserver]:::media
+ end
+
+ subgraph Apps[Apps & Spezialdienste]
+ CS16[CT 113 CS16]:::app
+ Games[CT 114 Games]:::app
+ Terminal[CT 112 Terminal]:::app
+ end
+
+ subgraph Aux[Weitere Betriebsobjekte]
+ Win11[VM 200 Windows11]:::aux
+ Monitoring[CT 107 Monitoring]:::aux
+ Guac[CT 100 Guacamole]:::aux
+ end
- ## Hinweise
+ Caddy --> Admin
+ Caddy --> Wiki
+ Caddy --> DNS
+ Caddy --> Files
+ Caddy --> Jellyfin
+ Caddy --> Immich
+ Caddy --> Downloads
+ Caddy --> Web
+ Caddy --> CS16
+ Caddy --> Games
+ Caddy --> Terminal
+ Caddy --> Guac
+ Claw -. Agentenkontext .-> Wiki
+ Win11 -. Monitoring-Pfad .-> Monitoring
+ ```
- - Diese Startseite dient als Einstiegspunkt.
- - Die operative Detaildokumentation liegt in den Unterseiten.
- - Stand: April 2026
+ > [!WARNING]
+ > Gestoppte Systeme sind nicht automatisch ein Fehler. Öffentlich kaputte Domains entstehen aber oft genau dann, wenn Caddy noch auf einen gestoppten Dienst zeigt.
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