Anbindung über den DQC Proxy
Der DQC Proxy verbindet Ihre Datenbanken mit der DQC-Plattform, ohne dass Sie einen einzigen eingehenden Firewall-Port öffnen müssen. Er läuft als kleiner Dienst in Ihrem Netzwerk und baut eine ausgehende, TLS-verschlüsselte Verbindung (WSS über Port 443) zum DQC Tunnel-Gateway auf. Alle Datenbankzugriffe der Plattform laufen durch diesen Tunnel — Ihre Firewall bleibt zu.
In einem Satz: Die DQC-Plattform erreicht Ihre Datenbank ausschließlich durch den Tunnel, den Ihr Proxy von innen nach außen aufgebaut hat — und auch dann nur die Ziele, die Sie explizit freigegeben haben.
Systemvoraussetzungen
Linux-Server oder -VM (x86_64 oder ARM64) — 1 vCPU / 256 MB RAM genügen
Ausgehender HTTPS-Zugang (Port 443) zu
gw.shared.app.dqc.aiNetzwerkzugriff vom Proxy-Host auf die freizugebende(n) Datenbank(en)
Keine eingehenden Firewall-Freigaben erforderlich
Download & Installation
Laden Sie das Archiv für Ihre Architektur von der DQC-Proxy-Releases-Seite:
dqcproxy-linux-amd64.tar.gz — Linux x86_64
dqcproxy-linux-arm64.tar.gz — Linux ARM64 (aarch64)
SHA256SUMS — Prüfsummen für beide Archive
Prüfsumme verifizieren, dann installieren:
sha256sum --check --ignore-missing SHA256SUMS
tar -xzf dqcproxy-linux-<arch>.tar.gz
sudo install -m 0755 dqcproxy /usr/local/bin/dqcproxyAktuelle Prüfsummen (v0.1.0): amd64 e3b8e49004dd771d16c49bcd3027539116cd8fe9469fe0811252c4e0b8e7c76b, arm64 ebf774d7ad2d3d4b2debc488c0c586d0c056743ce8496b36af1d481ddcd5ef78.
Betrieb als eigene VM (cloud-init)
Wenn Sie eine dedizierte Proxy-VM in Ihrer Infrastruktur bevorzugen: Erstellen Sie eine Ubuntu-22.04/24.04-Minimal-VM (1 vCPU / 1 GB RAM / 10 GB Disk) und hängen Sie unsere cloud-init.yaml als user-data an — Token und Allowlist eintragen, booten, fertig. Die VM installiert den Proxy (Checksum-verifiziert), härtet den Dienst und aktiviert automatische OS-Sicherheitsupdates. Für eine bereits laufende VM gibt es ein install.sh:
curl -fsSLO https://github.com/dataqcompany/dqcproxy-releases/raw/main/vm/install.sh
sudo bash install.sh --token dqcpx_IHR_TOKEN --allow "db1.intern.example.com:5432"Das Betriebssystem bleibt unter Ihrer Kontrolle und Patch-Richtlinie — der Proxy ist nur ein einzelnes statisches Binary obendrauf.
Betrieb als Container
Wenn Sie Docker oder Kubernetes betreiben, nutzen Sie statt einer VM das öffentliche Multi-Arch-Image ghcr.io/dataqcompany/dqcproxy:
docker run -d --name dqcproxy --restart always \
-e DQCPROXY_MODE=client \
-e DQCPROXY_GATEWAY_URL=wss://gw.shared.app.dqc.ai \
-e DQCPROXY_TOKEN=dqcpx_IHR_TOKEN \
-e DQCPROXY_ALLOW="db1.intern.example.com:5432" \
ghcr.io/dataqcompany/dqcproxy:latestEs werden keine Ports veröffentlicht — der Proxy kommuniziert nur ausgehend. Das Image ist distroless (keine Shell, kein Paketmanager) und läuft als Non-Root-User.
Proxy starten
Sie erhalten von DQC einen einmaligen Enrollment-Token (dqcpx_…). Er weist Ihren Proxy gegenüber dem Gateway aus — behandeln Sie ihn wie ein Passwort.
dqcproxy --mode=client \
--gateway wss://gw.shared.app.dqc.ai \
--token dqcpx_IHR_TOKEN \
--allow "db1.intern.example.com:5432,db2.intern.example.com:1433"Bei erfolgreicher Verbindung erscheint im Log:
{"level":"INFO","msg":"tunnel established","gateway":"wss://gw.shared.app.dqc.ai"}Betrieb als systemd-Dienst (empfohlen)
/etc/systemd/system/dqcproxy.service:
[Unit]
Description=DQC Proxy (Reverse-Tunnel zur DQC-Plattform)
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/local/bin/dqcproxy --mode=client
Environment=DQCPROXY_GATEWAY_URL=wss://gw.shared.app.dqc.ai
EnvironmentFile=/etc/dqcproxy/env
Restart=always
RestartSec=5
DynamicUser=yes
NoNewPrivileges=yes
ProtectSystem=strict
[Install]
WantedBy=multi-user.target/etc/dqcproxy/env (Rechte 600, Eigentümer root):
DQCPROXY_TOKEN=dqcpx_IHR_TOKEN
DQCPROXY_ALLOW=db1.intern.example.com:5432Aktivieren mit sudo systemctl enable --now dqcproxy.
Konfigurationsreferenz
Jedes Flag kann alternativ als Umgebungsvariable gesetzt werden:
--mode/DQCPROXY_MODE— in Ihrem Netzwerk immerclient--gateway/DQCPROXY_GATEWAY_URL— Gateway-URL:wss://gw.shared.app.dqc.ai--token/DQCPROXY_TOKEN— Ihr Enrollment-Token (dqcpx_…)--allow/DQCPROXY_ALLOW— Allowlist der erreichbaren Ziele (siehe unten)
Ziel-Allowlist
Der Proxy verbindet sich ausschließlich zu Zielen, die Sie hier freigeben — alles andere wird abgelehnt (Default-Deny). Kommagetrennte Einträge, drei Formen:
host:port— genau dieser Host und Port, z. B.db1.intern.example.com:5432*.domain:port— alle Subdomains, fester Port, z. B.*.sql.example.com:1433host:*— fester Host, alle Ports, z. B.dwh.example.com:*
Pauschale Freigaben wie *:5432 werden bewusst nicht akzeptiert.
Sicherheit
Nur ausgehend: Der Proxy öffnet keinen einzigen Listening-Port. Er wählt sich per WSS (TLS, Port 443) beim DQC-Gateway ein.
Keine Zugangsdaten im Proxy: Datenbank-Credentials verbleiben verschlüsselt in der DQC-Plattform. Der Proxy leitet nur Bytes weiter; bei aktiviertem Datenbank-TLS sieht er ausschließlich verschlüsselten Verkehr.
Allowlist in Ihrer Hand: Die Zielfreigabe wird in Ihrem Netzwerk durchgesetzt. Selbst ein vollständig kompromittiertes Cloud-Gegenüber könnte nur die von Ihnen gelisteten
host:port-Ziele erreichen.Server-autoritative Routen: Welche Ziele angefragt werden, bestimmen die in der DQC-Plattform konfigurierten Connectoren — der Tunnel transportiert keine frei wählbaren Adressen von außen.
Kein Code, keine Ausführung: Der Proxy enthält keine Geschäftslogik und führt nichts aus. Ein einzelnes statisches Binary.
Troubleshooting
tunnel establishederscheint nicht — ausgehender Port 443 zugw.shared.app.dqc.aiblockiert (Firewall/Web-Proxy prüfen) oder Token ungültig. DQC-Support kontaktieren.Log zeigt Ablehnung eines Ziels — das Ziel
host:portfehlt in--allow. Ergänzen und Dienst neu starten. Hinweis:localhostund127.0.0.1sind unterschiedliche Einträge.Verbindung bricht ab — der Proxy verbindet sich automatisch mit Backoff neu; kurze Unterbrechungen heilen selbst. Dauerhafter Reconnect-Loop: DQC-Support.
Fehlermeldung „refusing plaintext ws://“ — die Gateway-URL muss mit
wss://beginnen (TLS).ws://ist nur für Entwicklungsumgebungen zulässig.
Fragen? support@dqc.ai — bitte Logauszug und Release-Version mitschicken.