====== Dokumentation: DATEV Smart Token Weiterleitung (Linux zu Windows via RDP) ======
Diese Dokumentation beschreibt die Lösung für das Problem, bei dem ein USB-basierter DATEV-Identity-Token unter Linux nicht an eine Windows-Umgebung via RDP durchgereicht werden konnte.
**Zielumgebung:**
* **Client:** CachyOS (Arch Linux) mit ''xfreerdp3''
* **Ziele (Targets):** Windows 11 Notebook / Windows 11 Proxmox VM
* **Hardware:** Kobil Systems GmbH Smart Token (ID 0d46:3014)
===== 1. Problemstellung =====
Der Kobil Smart Token wurde beim Einstecken am Linux-Client zwar via ''lsusb'' erkannt, konnte jedoch nicht erfolgreich in die Windows-Remotesitzung übergeben werden. Die DATEV-Software auf dem Zielsystem erkannte den Stick nicht.
Symptome und Fehlermeldungen im ''xfreerdp3''-Log:
* **Fehlender Windows-Dienst:**
[ERROR][com.freerdp.utils.smartcard.call] - SCardEstablishContext failed with error SCARD_E_NO_SERVICE [-2146435043]
* **Kein lokaler Linux-Reader aktiv:**
[INFO][com.freerdp.utils.smartcard.call] - SCardListReadersW failed with error SCARD_E_NO_READERS_AVAILABLE [-2146435026]
===== 2. Ursachenanalyse =====
- **Generischer USB-Filter vs. Smartcard-Kanal:** Der Versuch, das Gerät als rohes USB-Gerät (via ''/usb:id...'' ohne Root-Rechte) weiterzuleiten, kollidierte mit der Funktionsweise von Smartcards unter RDP. Smartcards müssen über den nativen RDP-Kanal (''/smartcard'') getunnelt werden.
- **Inaktive Windows-Schnittstelle:** Der Windows-Dienst für Smartcards lief auf dem Zielsystem nicht.
- **Fehlende Linux-Infrastruktur:** Auf dem CachyOS-Client war der PC/SC-Dienst (Smartcard-Daemon) nicht vollständig installiert und konfiguriert.
- **Windows-Sicherheitsrichtlinie:** Die Gruppenrichtlinien (GPO) von Windows blockierten die Smartcard-Umleitung für RDP-Sitzungen.
===== 3. Lösungsschritte =====
==== Schritt 3.1: Konfiguration des Linux-Clients (CachyOS) ====
Die Smartcard-Middleware und Treiber müssen lokal installiert und gestartet werden, damit Linux den Token als Krypto-Gerät verwaltet:
# 1. Benötigte Pakete via pacman installieren
sudo pacman -S pcsclite ccid pcsc-tools
# 2. Hintergrunddienste aktivieren und sofort starten
sudo systemctl daemon-reload
sudo systemctl enable --now pcscd.socket
sudo systemctl enable --now pcscd.service
**Funktionstest unter Linux:**
Der Befehl ''pcsc_scan'' muss den Stick fehlerfrei als ''KOBIL Systems Smart Token'' mit eingelegter Karte (''Card inserted'') auflisten.
==== Schritt 3.2: Konfiguration des Windows-Ziels (Notebook / VM) ====
Auf dem Windows 11 Zielsystem (bzw. in der Proxmox VM) müssen folgende Anpassungen vorgenommen werden:
- **Dienste einrichten:** Öffnen Sie ''services.msc''. Stellen Sie die Dienste **Smartcard** und **Smartcard-Geräteaufzählungsdienst** auf den Starttyp **Automatisch** und starten Sie diese.
- **Gruppenrichtlinie (GPO) anpassen:** Öffnen Sie ''gpedit.msc'' und navigieren Sie zu:
\\ ''Computerkonfiguration'' -> ''Administrative Vorlagen'' -> ''Windows-Komponenten'' -> ''Remotedesktopdienste'' -> ''Remotedesktopsitzungs-Host'' -> ''Geräte- und Ressourcenumleitung''.
\\ Setzen Sie den Eintrag **"Keine Geräteumleitung für Smartcards zulassen"** explizit auf **Deaktiviert**.
- **Neustart:** Starten Sie das Windows-System neu.
- **DATEV:** Installieren Sie das ''DATEV Sicherheitspaket (Sipacompact)''.
==== Schritt 3.3: Verbindungsaufbau via xfreerdp3 ====
Die Remotesitzung wird als normaler Benutzer (**ohne** sudo) mit dem nativen ''/smartcard''-Parameter gestartet. Auf den generischen ''/usb''-Filter wird verzichtet.
xfreerdp3 /v:nb005.fritz.box /u:hwehrs /p:'IHR_PASSWORT' /cert:ignore +home-drive /audio-mode:0 /kbd:layout:0x407,lang:0x407 /floatbar /drive:D,/mnt /gfx:AVC420:on /network:lan /microphone /dvc:rdpecam +video /smartcard -decorations /workarea
**Hinweis für DATEV-Initialisierung:** Sollte der Stick nach dem Verbindungsaufbau in der Sitzung nicht sofort grün leuchten, in der Windows-Taskleiste auf das DATEV-Symbol klicken, die **Diagnose** öffnen und **FixPCSC** ausführen.
===== 4. Systemarchitektur & Datenfluss =====
Der folgende Graph veranschaulicht, wie der Token über die verschiedenen Schichten vom Linux-USB-Port bis in die Windows-DATEV-Software getunnelt wird:
graph TD
subgraph Linux_Client [Linux Client: CachyOS]
A[Kobil USB Token] -->|Physisch| B[CCID Treiber]
B --> C[pcsclite / pcscd.service]
C -->|Lokaler Reader bereit| D[xfreerdp3 /smartcard]
end
subgraph RDP_Tunnel [Netzwerk / RDP]
D -->|Virtueller Kanal: SCARD| E[RDP Protokoll]
end
subgraph Windows_Target [Windows 11: Notebook / VM]
E -->|GPO erlaubt Umleitung| F[Windows Smartcard-Dienst]
F --> G[DATEV Sicherheitspaket]
G --> H[DATEV Anwendung]
end
style A fill:#9f9,stroke:#333,stroke-width:2px
style H fill:#9cf,stroke:#333,stroke-width:2px