Linux Virtual Delivery Agent

Smartcards

Sie können eine mit dem Clientgerät verbundene Smartcard zur Anmeldung an einer virtuellen Linux-Desktopsitzung verwenden. Dieses Feature wurde in Form der Smartcardumleitung über den virtuellen ICA-Smartcardkanal implementiert. Sie können die Smartcard auch innerhalb der Sitzung verwenden. Anwendungsfälle:

  • Digitale Signatur zu einem Dokument hinzufügen
  • E-Mails verschlüsseln oder entschlüsseln
  • Authentifizierung bei einer Website

Auf dem Linux VDA wird hierfür die gleiche Konfiguration wie auf dem Windows VDA verwendet. Weitere Informationen finden Sie unter Konfigurieren der Smartcardumgebung in diesem Artikel.

Hinweis:

Die Verwendung einer zugeordneten Smartcard in einer Linux VDA-Sitzung zur Anmeldung bei Citrix Gateway wird nicht unterstützt.

Voraussetzungen

Die Passthrough-Authentifizierung mit Smartcard erfordert die Erfüllung folgender Voraussetzungen:

  • Der Linux VDA ist unter einer der folgenden Distributionen installiert:

    • RHEL 9.1/9.0
    • RHEL 8.7/8.6/8.4
    • RHEL 7, CentOS 7
    • Rocky Linux 9.1/9.0
    • Rocky Linux 8.7/8.6
    • Ubuntu 22.04
    • Ubuntu 20.04
    • Ubuntu 18.04
    • Debian 11.3

    Stellen Sie nach Abschluss der VDA-Installation sicher, dass sich der VDA beim Delivery Controller registrieren kann und Sie die veröffentlichten Linux-Desktopsitzungen mit Windows-Anmeldeinformationen öffnen können.

  • Es werden von OpenSC unterstützte Smartcards verwendet. Weitere Informationen finden Sie unter Überprüfen der Kompatibilität der verwendeten Smartcards mit OpenSC.

  • Citrix Workspace-App für Windows wird verwendet.

Überprüfen der Kompatibilität der verwendeten Smartcards mit OpenSC

OpenSC ist ein gebräuchlicher Treiber für Smartcards unter RHEL 7.4+. Als voll kompatibler Ersatz von CoolKey unterstützt OpenSC viele Arten von Smartcards (siehe Smart Card Support in Red Hat Enterprise Linux).

In diesem Artikel dient die YubiKey-Smartcard als Beispiel zur Veranschaulichung der Konfiguration. YubiKey ist ein im Handel erhältliches und PIV-konformes USB-Gerät mit CCID-Funktion. YubiKey wird vom OpenSC-Treiber unterstützt.

Wenn in Ihrer Organisation eine anspruchsvollere Smartcard benötigt wird, stellen Sie eine physische Maschine mit einer unterstützten Linux-Distribution und installiertem OpenSC-Paket bereit. Informationen zur Installation von OpenSC finden Sie unter Installieren des Smartcardtreibers. Führen Sie die Smartcard ein und prüfen Sie mit folgendem Befehl, ob OpenSC Ihre Smartcard unterstützt:

pkcs11-tool --module opensc-pkcs11.so --list-slots
<!--NeedCopy-->

Konfiguration

Vorbereiten eines Stammzertifikats

Ein Stammzertifikat wird zur Überprüfung des Zertifikats auf der Smartcard verwendet. Führen Sie die folgenden Schritte aus, um ein Stammzertifikat herunterzuladen und zu installieren:

  1. Rufen Sie (normalerweise von einem Zertifizierungsstellenserver) ein Stammzertifikat im PEM-Format ab.

    Sie können eine DER-Datei (*.crt, *.cer, *.der) mithilfe des folgenden Befehls in PEM konvertieren. In dem Beispiel heißt die DER-Datei certnew.cer.

    openssl x509 -inform der -in certnew.cer -out certnew.pem
    <!--NeedCopy-->
    
  2. Installieren Sie das Stammzertifikat im Verzeichnis openssl. Die Datei certnew.pem gilt hier als Beispiel.

    cp certnew.pem <path where you install the root certificate>
    <!--NeedCopy-->
    

    Um einen Pfad für die Installation des Stammzertifikats zu erstellen, führen Sie sudo mdkir -p <path where you install the root certificate> aus.

Erstellen Sie das Modul pam_krb5 unter RHEL 8.x und Rocky Linux 8.x

Die Smartcardauthentifizierung ist abhängig vom Modul pam_krb5, das unter RHEL 8.x und Rocky Linux 8.x veraltet ist. Die folgenden Schritte sind erforderlich, wenn Sie die Smartcardauthentifizierung auf RHEL 8.x- und Rocky Linux 8.x-Maschinen verwenden möchten, die im Multisitzungs-OS-Modus bereitgestellt werden. Für die Smartcardauthentifizierung auf RHEL 8.x- und Rocky Linux 8.x-Maschinen, die im Einzelsitzungs-OS-Modus (VDI-Modus) bereitgestellt werden, können Sie die folgenden Schritte überspringen.

  1. Laden Sie den pam_krb5-2.4.8-6-Quellcode von https://centos.pkgs.org/7/centos-x86_64/pam_krb5-2.4.8-6.el7.x86_64.rpm.html herunter.

  2. Erstellen und installieren Sie das Modul pam_krb5 unter RHEL 8.x und Rocky Linux 8.x.

    yum install -y opensc pcsc-lite pcsc-lite-libs pcsc-lite-ccid nss-tools
    yum install gcc krb5-devel pam-devel autoconf libtool
    rpm2cpio pam_krb5-2.4.8-6.el7.src.rpm | cpio –div
    tar xvzf pam_krb5-2.4.8.tar.gz
    cd pam_krb5-2.4.8
    ./configure --prefix=/usr
    make
    make install
    <!--NeedCopy-->
    
  3. Überprüfen Sie, ob pam_krb5.so unter /usr/lib64/security/ vorliegt.

    ls -l /usr/lib64/security | grep pam_krb5
    <!--NeedCopy-->
    

Konfigurieren der Smartcardumgebung

Sie können die Smartcardumgebung mit dem Skript ctxsmartlogon.sh oder auch manuell konfigurieren.

(Option 1) Konfigurieren der Smartcardumgebung mit dem Skript ctxsmartlogon.sh

Hinweis:

Das Skript ctxsmartlogon.sh fügt PKINIT-Informationen zum Standardbereich hinzu. Sie können diese Einstellung über die Konfigurationsdatei /etc/krb5.conf ändern.

Vor der ersten Verwendung von Smartcards konfigurieren Sie die Smartcardumgebung mit dem Skript ctxsmartlogon.sh.

Tipp:

Wenn Sie SSSD zum Domänenbeitritt verwendet haben, starten Sie den SSSD-Dienst nach dem Ausführen von ctxsmartlogon.sh neu.

sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh
<!--NeedCopy-->

Die Ergebnisse ähneln der folgenden Anzeige:

Ausführen des Skripts ctxsmartlogon.sh und Auswahl von "Ja"

Sie können Smartcards auch deaktivieren, indem Sie das Skript ctxsmartlogon.sh ausführen:

sudo /opt/Citrix/VDA/sbin/ctxsmartlogon.sh
<!--NeedCopy-->

Die Ergebnisse ähneln der folgenden Anzeige:

Ausführen des Skripts ctxsmartlogon.sh und Auswahl von "Nein"

(Option 2) Manuelles Konfigurieren der Smartcardumgebung

Auf dem Linux VDA wird dieselbe Smartcardumgebung verwendet wie auf dem Windows VDA. In der Umgebung müssen mehrere Komponenten konfiguriert werden: Domänencontroller, Microsoft-Zertifizierungsstelle, Internetinformationsdienste (IIS), Citrix StoreFront und Citrix Workspace-App. Informationen zur Konfiguration am Beispiel der YubiKey-Smartcard finden Sie im Knowledge Center-Artikel CTX206156.

Bevor Sie mit dem nächsten Schritt fortfahren, stellen Sie Folgendes sicher:

  • Sie haben alle Komponenten ordnungsgemäß konfiguriert.
  • Sie haben den privaten Schlüssel und das Benutzerzertifikat auf die Smartcard heruntergeladen.
  • Sie können sich mit der Smartcard erfolgreich am VDA anmelden.
Installieren der PC/SC Lite-Pakete

PC/SC Lite ist eine Implementierung der PC/SC-Spezifikation (Personal Computer/Smartcard) unter Linux. Sie bietet eine Windows-Smartcardschnittstelle zur Kommunikation mit Smartcards und Lesegeräten. Die Smartcardumleitung des Linux VDAs ist auf PC/SC-Ebene implementiert.

Führen Sie den folgenden Befehl aus, um die PC/SC Lite-Pakete zu installieren:

RHEL 9.1/9.0/8.x, Rocky Linux 9.1/9.0/8.x, RHEL 7/CentOS 7:

yum install pcsc-lite pcsc-lite-ccid pcsc-lite-libs
<!--NeedCopy-->

Ubuntu 22.04, Ubuntu 20.04, Ubuntu 18.04, Debian 11.3:

apt-get install -y libpcsclite1 libccid
<!--NeedCopy-->
Installieren des Smartcardtreibers

OpenSC ist ein gebräuchlicher Treiber für Smartcards. Wenn OpenSC nicht installiert ist, führen Sie den folgenden Befehl aus, um es zu installieren:

RHEL 9.1/9.0/8.x, Rocky Linux 9.1/9.0/8.x, RHEL 7/CentOS 7:

yum install opensc
<!--NeedCopy-->

Ubuntu 22.04, Ubuntu 20.04, Ubuntu 18.04, Debian 11.3:

apt-get install -y opensc
<!--NeedCopy-->
Installieren der PAM-Module für die Authentifizierung per Smartcard

Führen Sie den folgenden Befehl aus, um die Module pam_krb5 und krb5-pkinit zu installieren:

RHEL 7/CentOS 7:

yum install pam_krb5 krb5-pkinit
<!--NeedCopy-->

RHEL 9.1/9.0/8.x, Rocky Linux 9.1/9.0/8.x:

yum install krb5-pkinit
<!--NeedCopy-->

Ubuntu 22.04, Ubuntu 20.04, Ubuntu 18.04:

apt-get install libpam-krb5 krb5-pkinit
<!--NeedCopy-->

Debian 11.3:

apt-get install -y libpam-krb5 krb5-pkinit
<!--NeedCopy-->

pam_krb5 ist ein austauschbares Authentifizierungsmodul. Damit können PAM-fähige Anwendungen mit pam_krb5 Kennwörter prüfen und Ticket Granting Tickets vom Schlüsselverteilungscenter (KDC) abrufen. krb5-pkinit enthält das PKINIT-Plug-In, mit dem Clients mit einem privaten Schlüssel und einem Zertifikat Anfangsanmeldeinformationen vom KDC abrufen können.

Konfigurieren des pam_krb5-Moduls

Das pam_krb5-Modul interagiert mit dem KDC zum Abrufen von Kerberos-Tickets über Zertifikate auf Smartcards. Führen Sie den folgenden Befehl aus, um die pam_krb5-Authentifizierung in PAM zu aktivieren:

authconfig --enablekrb5 --update
<!--NeedCopy-->

Fügen Sie der Konfigurationsdatei /etc/krb5.conf PKINIT-Informationen entsprechend dem tatsächlichen Bereich hinzu:

Hinweis:

Die Option pkinit_cert_match gibt Übereinstimmungsregeln an, die das Clientzertifikat erfüllen muss, damit es zum Versuch der PKINIT-Authentifizierung verwendet wird. Die Syntax der Übereinstimmungsregeln ist:

[relation-operator] component-rule…

, wobei relation-operator entweder && (alle Komponentenregeln müssen erfüllt werden) sein kann oder || (nur eine Komponentenregel muss erfüllt werden).

Beispiel für eine generische krb5.conf-Datei:

EXAMPLE.COM = {

    kdc = KDC.EXAMPLE.COM

    auth_to_local = RULE:[1:$1@$0]

    pkinit_anchors = FILE:<path where you install the root certificate>/certnew.pem

    pkinit_kdc_hostname = KDC.EXAMPLE.COM

    pkinit_cert_match = ||<EKU>msScLogin,<KU>digitalSignature

    pkinit_eku_checking = kpServerAuth

 }
<!--NeedCopy-->

Die Konfigurationsdatei sieht in etwa folgendermaßen aus, nachdem Sie die PKINIT-Informationen hinzugefügt haben:

PKINIT-Informationen hinzugefügt

Konfigurieren der PAM-Authentifizierung

PAM-Konfigurationsdateien bestimmen, welche Module für die PAM-Authentifizierung verwendet werden. Um pam_krb5 als Authentifizierungsmodul hinzuzufügen, fügen Sie der Datei /etc/pam.d/smartcard-auth folgende Zeile hinzu :

auth [success=done ignore=ignore default=die] pam_krb5.so preauth_options=X509_user_identity=PKCS11:<path to the pkcs11 driver>/opensc-pkcs11.so

Die Konfigurationsdatei sieht in etwa folgendermaßen aus, nachdem Sie sie geändert haben, wenn SSSD verwendet wird:

Geänderte Konfigurationsdatei, wenn SSSD verwendet wird

Optional: Single Sign-On per Smartcard

Single Sign-On ist ein Citrix Feature, mit dem die Passthrough-Authentifizierung in Starts von virtuellen Desktops und Anwendungen implementiert wird. Dadurch müssen Benutzer ihre PIN seltener eingeben. Konfigurieren Sie die Citrix Workspace-App, um SSO mit dem Linux VDA zu verwenden. Die Konfiguration ist die gleiche wie für den Windows-VDA. Weitere Informationen finden Sie im Knowledge Center-Artikel CTX133982.

Aktivieren Sie die Smartcardauthentifizierung wie nachfolgend beschrieben, wenn Sie die Gruppenrichtlinie in der Citrix Workspace-App konfigurieren.

Aktivieren der Smartcard-Authentifizierung in Workspace-App

Anmeldung mit Schneller Smartcard

Das Schnelle-Smartcard-Feature ist eine Verbesserung gegenüber der alten HDX PC/SC-basierten Smartcardumleitung. Das Feature verbessert die Leistung, wenn Smartcards in WANs mit hoher Latenz verwendet werden. Weitere Informationen finden Sie unter Smartcards.

Der Linux VDA unterstützt Schnelle Smartcards auf folgenden Versionen der Citrix Workspace-App:

  • Citrix Receiver für Windows 4.12
  • Citrix Workspace-App 1808 für Windows und höher

Aktivieren der Anmeldung mit Schneller Smartcard auf dem Client

Die Anmeldung mit Schneller Smartcard ist standardmäßig auf dem VDA aktiviert und auf dem Client deaktiviert. Zum Aktivieren des Features auf dem Client fügen Sie folgenden Parameter in die Datei default.ica der zugehörigen StoreFront-Site ein:

[WFClient]
SmartCardCryptographicRedirection=On
<!--NeedCopy-->

Deaktivieren der Anmeldung mit Schneller Smartcard auf dem Client

Um die Anmeldung mit Schneller Smartcard auf dem Client zu deaktivieren, entfernen Sie den Parameter SmartCardCryptographicRedirection aus der Datei default.ica der zugehörigen StoreFront-Website.

XDPing ausführen

Nachdem Sie die vorherigen Schritte ausgeführt haben, können Sie Ihre Linux VDA-Umgebung mit dem Linux XDPing-Tool auf mögliche Konfigurationsprobleme überprüfen. Weitere Informationen finden Sie unter XDPing.

Verwendung

Anmelden am Linux VDA mit einer Smartcard

Sie können sich per Smartcard am Linux VDA in Szenarien mit und ohne Single Sign-On anmelden.

  • Bei Verwendung von Single Sign-On werden Sie automatisch mit dem zwischengespeicherten Smartcardzertifikat und der PIN bei StoreFront angemeldet. Wenn Sie eine virtuelle Linux-Desktopsitzung in StoreFront starten, wird die PIN an den Linux VDA zur Smartcardauthentifizierung weitergeleitet.
  • Wird kein Single Sign-On verwendet, werden Sie aufgefordert, ein Zertifikat auszuwählen und eine PIN einzugeben, um sich bei StoreFront anzumelden.

    Eingeben einer PIN zum Anmelden bei StoreFront

Wenn Sie eine Sitzung mit virtuellem Linux-Desktop in StoreFront starten, wird auf dem Linux VDA das nachfolgende Anmeldedialogfeld angezeigt. Der Benutzername wird aus dem Zertifikat auf der Smartcard extrahiert und Sie müssen die PIN zur Anmeldeauthentifizierung erneut eingeben.

Dieses Verhalten ist mit dem des Windows VDA identisch.

Anmeldeauthentifizierung

Wiederherstellen der Verbindung mit einer Sitzung per Smartcard

Stellen Sie sicher, dass die Smartcard mit dem Clientgerät verbunden ist, um die Verbindung zu einer Sitzung wiederherzustellen. Andernfalls wird nur kurz ein graues Caching-Fenster auf dem Linux VDA angezeigt, da die erneute Authentifizierung ohne Smartcard fehlschlägt. In diesem Fall wird keine weitere Aufforderung angezeigt, um Sie daran zu erinnern, die Smartcard anzuschließen.

In StoreFront wird beim Wiederherstellen einer Verbindung zu einer Sitzung ohne Smartcard eventuell eine Warnmeldung in folgender Form ausgegeben:

Abbildung: Smartcard einlegen

Einschränkung

Unterstützung für eingeschränkte Linux-Distributionen und AD-Integrationsmethoden

  • Die Smartcard-Passthrough-Authentifizierung unterstützt eingeschränkte Linux-Distributionen und AD-Integrationsmethoden. Siehe folgende Tabelle:

      Winbind SSSD Centrify
    Debian 11.3 Ja Ja Ja
    RHEL 9.1/9.0 Ja Ja Nein
    RHEL 8.7/8.6/8.4 Ja Ja Ja
    RHEL 7.9, CentOS 7.9 Ja Ja Ja
    Rocky Linux 9.1/9.0 Ja Ja Nein
    Rocky Linux 8.7/8.6 Ja Ja Nein
    Ubuntu 22.04/20.04/18.04 Ja Ja Ja

Richtlinie zum Entfernen der Smartcard

Derzeit wird auf dem Linux VDA nur das Standardverhalten für das Entfernen von Smartcards verwendet. Wenn Sie die Smartcard nach der Anmeldung beim Linux VDA entfernen, bleibt die Sitzung weiterhin verbunden und der Sitzungsbildschirm wird nicht gesperrt.

Unterstützung für andere Smartcards und die PKCS#11-Bibliothek

Citrix bietet eine generische Umleitungslösung für Smartcards. Obwohl nur die OpenSC-Smartcard in unserer Supportliste aufgeführt ist, können Sie versuchen, andere Smartcards und die PKCS#11-Bibliothek zu verwenden. Wechseln Sie zu Ihrer speziellen Smartcard oder der PKCS #11-Bibliothek:

  1. Ersetzen Sie alle Instanzen von “opensc-pkcs11.so” durch Ihre PKCS#11-Bibliothek.

  2. Führen Sie den folgenden Befehl aus, um den Pfad Ihrer PKCS#11-Bibliothek in der Registrierung festzulegen:

    /opt/Citrix/VDA/bin/ctxreg update -k "HKLM\System\CurrentControlSet\Control\Citrix\VirtualChannels\Scard" -v "PKCS11LibPath" -d "PATH"
    <!--NeedCopy-->
    

    Wobei PATH auf Ihre PKCS#11-Bibliothek verweist, z. B. /usr/lib64/pkcs11/opensc-pkcs11.so

  3. Deaktivieren Sie die Anmeldung mit Schneller Smartcard auf dem Client.

Smartcards