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. |
