Virtual Console (RedHat Linux): Passthrough von USB/CCID/Smartcard Leser von Client auf VM Guest in ESXi
Verfasst: 21.02.2019, 18:32
Hallo allerseits.
Ich versuche einen Smartcard-Lesegerät (CCID), das an einem Linux-Client (RedHat 7) angeschlossen ist und von dem via Web-Client (HTML5, vmrc) auf einen RedHat Server (realisiert als VM Guest auf einem ESXi 6.70). Das klappt keider nicht. Bevor Fragen aufkommen, weshalb ich diese eigenartige Konfiguration wähle: der ESXi (inkl. vCenter Appliance 6.70a) fährt diverse VMs mit einer Autorisierungssoftware, die Informationen von Smartcards benötigt. Die Smartcard-Lesergeräte müssen am Client angebunden sein.
Die RHEL Linux-exclusiv Installation (kein Windows!) ist soweit funktionstüchtig: ich kann jedes USB Massenspeichermedium, das am Client angeschlossen wird, ganz bequem an die VM durchreichen und habe im Webclient den gewohnten Zugriff. In einer getesteten Windows-Umgebung schien es so, als wäre auch das Smratcard Lesegerät durchstellbar - ohne Änderungen an der .vmx Datei auf dem ESXi der betreffenden Server-VM.
In diversen Foren habe ich folgendes gelesen und entsprechendes gemacht. Wenn ich im folgenden von Client schreibe, dann meine ich damit den PC vor mir, auf dem der VMware WebClient und die VM Remote Console Software (in der jeweils neuesten Version vom 05.02.2019) läuft.
Auf dem Client wird ein evtl. laufender pcscd gestoppt und abgeschaltet. Via "lsusb" sehe ich, daß der SmartCard Leser (OmniKey 3121, USB 1.1) vom Kernel erkannt wird (es wird aber kein spzifischer Gerätetreiber zugewiesen).
Auf dem ESXi wird im VM Zielsystem, zu dem ich diesen SmartCard Leser durchstellen will, die .vmx Datei abgeändert und durch diese beiden Zeilen ergänzt:
usb.generic.allowCCID = "TRUE"
usb.ccid.disable = "TRUE"
(Quelle: https://kb.vmware.com/s/article/2146766).
Ich habe im Test alternativ auch die zweite Zeile, usb.ccid.disable = "TRUE", weggelassen.
Die .vmx Datei wird zurückgeschrieben und der VM Gast gestartet.
Ergebnis: nichts!
Eine weitere Variante kursiert im Netz, wobei man die "Vendor-ID" und "Product-ID" des USB Gerätes ebenso in der .vmx Datei händisch angibt - hier aber gerate ich ins Schleudern (ich habe diesen Link umzusetzen versucht: https://kb.vmware.com/s/article/1011600?CoveoV2.CoveoLightningApex.getInitializationData=1&r=2&ui-communities-components-aura-components-forceCommunity-seoAssistant.SeoAssistant.getSeoData=1&other.KM_Utility.getArticleDetails=1&other.KM_Utility.getArticleMetadata=2&other.KM_Utility.getUrl=1&other.KM_Utility.getUser=1&other.KM_Utility.getAllTranslatedLanguages=2&ui-comm-runtime-components-aura-components-siteforce-qb.Quarterback.validateRoute=1 - dabei habe ich mir einmal die VM unrettbar beim Editieren der .vmx zerlegt).
Binde ich testweise diesen Smartcard Leser an einen der USB 3.0 Ports des ESXi/vCenter an - also direkt am ESXi Server - kann ich problemlos der Ziel-VM diesen SC Leser fest zuweisen und er funktioniert wie erwartet.
Die VMware Virtual Console (vmrc) in Verbindung mit dem WebClient auf einem Linux Client (RHEL 7.6) scheint nicht alles durchzustellen - vermutlich mit Absicht, habe ich den Verdacht: andere USB Geräte, wie z.B. Tastaturen (HID) werden nicht durchgestellt (auch wenn auf der VM mit usb.generic.allowHID = "TRUE" dies explizit erlaubt wurde). Massenspeicher aller Art, von der USB Festplatte, USB-DVD-Brenner bis zum altertümlichen USB Stick werden durchgestellt. SD-Karten Leser/Schreiber hingegen nicht.
Ich bin neu im VMware/ESXi/vCenter/WebClient Geschäft. Vielleicht habe ich etwas übersehen? Wenn jemand einen Rat, Tipp oder einen Hinweis parat hat, ich bin dafür dankbar.
Danke.
Ich versuche einen Smartcard-Lesegerät (CCID), das an einem Linux-Client (RedHat 7) angeschlossen ist und von dem via Web-Client (HTML5, vmrc) auf einen RedHat Server (realisiert als VM Guest auf einem ESXi 6.70). Das klappt keider nicht. Bevor Fragen aufkommen, weshalb ich diese eigenartige Konfiguration wähle: der ESXi (inkl. vCenter Appliance 6.70a) fährt diverse VMs mit einer Autorisierungssoftware, die Informationen von Smartcards benötigt. Die Smartcard-Lesergeräte müssen am Client angebunden sein.
Die RHEL Linux-exclusiv Installation (kein Windows!) ist soweit funktionstüchtig: ich kann jedes USB Massenspeichermedium, das am Client angeschlossen wird, ganz bequem an die VM durchreichen und habe im Webclient den gewohnten Zugriff. In einer getesteten Windows-Umgebung schien es so, als wäre auch das Smratcard Lesegerät durchstellbar - ohne Änderungen an der .vmx Datei auf dem ESXi der betreffenden Server-VM.
In diversen Foren habe ich folgendes gelesen und entsprechendes gemacht. Wenn ich im folgenden von Client schreibe, dann meine ich damit den PC vor mir, auf dem der VMware WebClient und die VM Remote Console Software (in der jeweils neuesten Version vom 05.02.2019) läuft.
Auf dem Client wird ein evtl. laufender pcscd gestoppt und abgeschaltet. Via "lsusb" sehe ich, daß der SmartCard Leser (OmniKey 3121, USB 1.1) vom Kernel erkannt wird (es wird aber kein spzifischer Gerätetreiber zugewiesen).
Auf dem ESXi wird im VM Zielsystem, zu dem ich diesen SmartCard Leser durchstellen will, die .vmx Datei abgeändert und durch diese beiden Zeilen ergänzt:
usb.generic.allowCCID = "TRUE"
usb.ccid.disable = "TRUE"
(Quelle: https://kb.vmware.com/s/article/2146766).
Ich habe im Test alternativ auch die zweite Zeile, usb.ccid.disable = "TRUE", weggelassen.
Die .vmx Datei wird zurückgeschrieben und der VM Gast gestartet.
Ergebnis: nichts!
Eine weitere Variante kursiert im Netz, wobei man die "Vendor-ID" und "Product-ID" des USB Gerätes ebenso in der .vmx Datei händisch angibt - hier aber gerate ich ins Schleudern (ich habe diesen Link umzusetzen versucht: https://kb.vmware.com/s/article/1011600?CoveoV2.CoveoLightningApex.getInitializationData=1&r=2&ui-communities-components-aura-components-forceCommunity-seoAssistant.SeoAssistant.getSeoData=1&other.KM_Utility.getArticleDetails=1&other.KM_Utility.getArticleMetadata=2&other.KM_Utility.getUrl=1&other.KM_Utility.getUser=1&other.KM_Utility.getAllTranslatedLanguages=2&ui-comm-runtime-components-aura-components-siteforce-qb.Quarterback.validateRoute=1 - dabei habe ich mir einmal die VM unrettbar beim Editieren der .vmx zerlegt).
Binde ich testweise diesen Smartcard Leser an einen der USB 3.0 Ports des ESXi/vCenter an - also direkt am ESXi Server - kann ich problemlos der Ziel-VM diesen SC Leser fest zuweisen und er funktioniert wie erwartet.
Die VMware Virtual Console (vmrc) in Verbindung mit dem WebClient auf einem Linux Client (RHEL 7.6) scheint nicht alles durchzustellen - vermutlich mit Absicht, habe ich den Verdacht: andere USB Geräte, wie z.B. Tastaturen (HID) werden nicht durchgestellt (auch wenn auf der VM mit usb.generic.allowHID = "TRUE" dies explizit erlaubt wurde). Massenspeicher aller Art, von der USB Festplatte, USB-DVD-Brenner bis zum altertümlichen USB Stick werden durchgestellt. SD-Karten Leser/Schreiber hingegen nicht.
Ich bin neu im VMware/ESXi/vCenter/WebClient Geschäft. Vielleicht habe ich etwas übersehen? Wenn jemand einen Rat, Tipp oder einen Hinweis parat hat, ich bin dafür dankbar.
Danke.