Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!

Virtual Console (RedHat Linux): Passthrough von USB/CCID/Smartcard Leser von Client auf VM Guest in ESXi

Alles zum Thema vSphere 6.7, ESXi 6.7 und vCenter Server.

Moderatoren: irix, Dayworker

Member
Beiträge: 3
Registriert: 20.02.2019, 14:58

Virtual Console (RedHat Linux): Passthrough von USB/CCID/Smartcard Leser von Client auf VM Guest in ESXi

Beitragvon Drohne » 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.

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: Virtual Console (RedHat Linux): Passthrough von USB/CCID/Smartcard Leser von Client auf VM Guest in ESXi

Beitragvon Dayworker » 23.02.2019, 13:46

Meine Vermutung ist, daß sich am Client angeschlossene HID-Devices nicht an den ESXi weiterreichen lassen, weil man sich dmit unter Umständen komplett vom Client aussperren könnte. Direkt am ESXi angeschlossene HID-Geräte lassen sich ja, wie von dir bereits festgestellt, mit deinen VMX-Einträgen einbinden. Entweder hast du jetzt einen Bug gefunden, was mich beim 6.7er nicht sonderlich verwundern würde, oder VMware sieht das Durchreichen von HID-Devices einfach nicht vor.

Zumindest etwas eingrenzen könnte man die Situation, wenn du noch einen 6.5er ESXi als Teststation dastehen hättest. Klappt es damit, liegt der Fehler wieder mal beim 6.7er... Wenn du daran weniger, sondern eher an einer pragmatischen Lösung interessiert bist, empfehle ich dir einen Device-Server der üblichen Verdächtigen. Allerdings dürfte dann mein Favorit namens Silex herausfallen, weil es zumindest für deren DS-510 (GE mit 2x USB2.0) und DS-600 (GE mit 1x USB3.0 und 1x USB2.0) nur SW für Windows und OSX aber eben kein Linux gibt.


Da VMware sein eigenes Forum VMTN unterhält, besteht für Mitarbeiter kein Notwendigkeit in Fremdforen mitzulesen. Ich würde daher dort einen Thread aufmachen und das Problem schildern. Zumindest die Produktmanager lesen dort mit und vielleicht ist das Problem bereits bekannt bzw bereits in Lösung begriffen. Über den Link zum VMTN würden wir uns freuen.

Ein Hinweis noch zur VMX-Datei. Das ist eine reine ASCII-Datei und darf keinerlei Formatierungen enthalten, was "vi", "nano" oder dessen Abkömmlinge erzwingt. Die VMX-Datei direkt zu editieren, macht sowieso nur wenig Sinn, weil diese nur zur ESXi-Startzeit eingelesen werden und ansonsten an einem anderen Platz vorgehalten werden. VMware hat dazu einen KB-Eintrag generiert, der sich damit beschäftigt. Änderungen an einer VMX-Datei nimmt man daher per Web/HTML5-Client vor und umgeht damit auch das Problem eventueller Formatierungen. Dein seitenlanger Link verweist auch auf das falsche Produkt "Horizon View", die darin gezeigten Wege lassen sich daher unter "vSphere" nicht umsetzen.

Member
Beiträge: 3
Registriert: 20.02.2019, 14:58

Re: Virtual Console (RedHat Linux): Passthrough von USB/CCID/Smartcard Leser von Client auf VM Guest in ESXi

Beitragvon Drohne » 25.02.2019, 08:49

Hallo.

Vielen Dank für die Hinweise (insbesondere der "lange Link" - tatsächlich habe ich hier die nicht korrekte URL kopiert). Das Editieren der .vmx Dateien werde ich entsprechend den Vorgaben anpassen - um nicht wieder eine böse Überraschung zu erleben. :-)

Eine Umstellung auf einen VMware ESXi 6.5 ist für mich der nicht gangbare Weg - die Mittel und die Zeit sind begrenzt. Ich habe derweil testweise einen Win7 Client aufgesetzt und es mit diesem äahnlich dem Linux RH Client versucht, die SmartCard Lesegeräte durchzustellen - mit Erfolg! Der Windows-Client VMRC mit der aktuellen Firefox Version 65 erlauben das Durchreichen der SC Kartenleser ohne weitere Einstellungen an ESXi Gast-VM und deren .vmx Datei.

Ich denke, damit ist das Problem, oberflächlich betrachtet, auf die Linux Umgebung eingegrenzt.

Danke für den Hinweis zum VMware Forum. Ich werde das Problem dort auch einmal darlegen - und sofern es gelöst werden kann hier einen entsprechenden deutschen Eintrag hinterlegen.

Anmerkung: Die Problematik bezüglich des Durchreichens eines SC Kartenlesers wird vielfältig und dediziert in vielen Foren bezüglich VMware diskutiert - und in Bezug auf Zugangskontrollen mittels einer SmartCard ist das auch verständlich. Daß der SC Leser vom Klient an die Guest VM auf dem ESXi durchgereicht werden soll/muß, ist in unserem Falle auch ein etwas spezieller Falle - der Client wird komplett als "nutzloser" Satellit (innerhalb eines gesicherten Umfeldes) verwendet, die VM benötigt die Token, die über den SC Leser bereitgestellt werden.
Mich irritiert aber nun, daß der Windows-VMRC Client ohne Hemmung und ohne eine weitere Einstellung den SC Leser durchreicht! Das führt eigentlich die gesamte Logelei um die SmartCard und weshalb sie nicht durchgereicht wird, ad absurdum.

King of the Hill
Beiträge: 13561
Registriert: 01.10.2008, 12:54
Wohnort: laut USV-Log am Ende der Welt...

Re: Virtual Console (RedHat Linux): Passthrough von USB/CCID/Smartcard Leser von Client auf VM Guest in ESXi

Beitragvon Dayworker » 25.02.2019, 21:24

Von Umstellung hatte keiner gesprochen. Einfach den 6.5er auf einen USB-Stick installieren und mal kurz testen.

Die Frage wäre jetzt noch unter Linux, welcher Treiber sich für den SC-Leser angesprochen fühlt. Wie immer unter Linux ist das fast immer nur von der eingesetzten Kernelversion abhängig, weil es eine Treiber- im Grunde nur innerhalb der Kernel-EW gibt. Schau mal bei RH nach, ob der notwendige Treiber bereits in deine Kernel-Version rückportiert wurde.

Member
Beiträge: 3
Registriert: 20.02.2019, 14:58

Re: Virtual Console (RedHat Linux): Passthrough von USB/CCID/Smartcard Leser von Client auf VM Guest in ESXi

Beitragvon Drohne » 26.02.2019, 06:46

Hallo.

Das Problem wurde bereits 2017 im vmware Forum gelöst:

https://communities.vmware.com/message/2691990#2691990

Nicht auf dem ESXi VM Host selbst, sondern auf dem Client System (in diesem Falle das RHEL Linux) muß im lokalen Konfigurationsverzeichnis des Benutzers, welcher die vmrc Konsole aufruft, die eingangs erwähnte Konfigurationserweiterung eingefügt werden:

In Datei

~/.vmware/preferences

via Editor (z.B. vi) die beiden folgenden Zeilen anfügen:

usb.generic.allowCCID = "TRUE"
usb.ccid.disable = "TRUE"

Damit erscheinen jetzt die SC Lesegeräte auch in der Linux-vmrc.
Ich habe auch versucht diese Einstellung global in

/etc/vmware/preferences

zu machen, allerdings ohne Erfolg; eventuell ist wegen der delikaten Behandlung solcher Token dies nicht möglich.


Zurück zu „vSphere 6.7“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 Gäste