Um die Smartcard-Umleitung auf einer virtuellen SLED/SLES-Maschine (VM) zu konfigurieren, installieren Sie die Bibliotheken, von denen die Funktion abhängt, und das Stammzertifikat der Zertifizierungsstelle (CA), um die vertrauenswürdige Authentifizierung von Smartcards zu unterstützen. Außerdem müssen Sie einige Konfigurationsdateien bearbeiten, um des Einrichten der Authentifizierung abzuschließen.

In einigen der Beispiele im Verfahren werden Platzhalterwerte verwendet, um Entitäten in Ihrer Netzwerkkonfiguration darzustellen, z. B. den DNS-Namen Ihrer Active Directory-Domäne. Ersetzen Sie die Platzhalterwerte durch spezifische Informationen für Ihre Konfiguration, wie in der folgenden Tabelle gezeigt.

Platzhalterwert Beschreibung
dns_IP_ADDRESS IP-Adresse Ihres DNS-Namenservers
mydomain.com DNS-Name Ihrer Active Directory-Domäne
MYDOMAIN.COM DNS-Name Ihrer Active Directory-Domäne in Großbuchstaben
MYDOMAIN DNS-Name der Arbeitsgruppe oder NT-Domäne, in der sich Ihr Samba-Server befindet, in Großbuchstaben
ads-hostname Hostname Ihres AD-Servers
ads-hostname.mydomain.com Vollqualifizierter Domänenname (FQDN) Ihres AD-Servers
mytimeserver.mycompany.com DNS-Name Ihres NTP-Zeitservers
AdminUser Benutzername des VM-Administrators

Voraussetzungen

Führen Sie die unter Integrieren einer virtuellen SLED/SLES-Maschine in Active Directory für die Smartcard-Umleitung aufgeführten Schritte aus.

Prozedur

  1. Installieren Sie die PAM-Bibliothek und andere erforderliche Pakete.
    sudo zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools pcsc-lite pcsc-ccid opensc pcsc-tools

    Möglicherweise müssen Sie Erweiterungen wie PackageHub aktivieren, um alle vorangehenden Pakete zu installieren.

  2. Installieren Sie ein Stamm-CA-Zertifikat.
    1. Laden Sie ein Stamm-CA-Zertifikat herunter und speichern Sie es unter /tmp/certificate.cer auf dem System. Siehe How to export Root Certification Authority Certificate.
    2. Installieren Sie vertrauenswürdige Anker in der NSS-Datenbank.
      sudo mkdir /etc/pam_pkcs11/nssdb
      sudo certutil -N -d /etc/pam_pkcs11/nssdb
      sudo certutil -L -d /etc/pam_pkcs11/nssdb
      sudo certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pam_pkcs11/nssdb
    3. Installieren Sie die erforderlichen Treiber.
      sudo modutil -add "opensc lib" -libfile /usr/lib64/opensc-pkcs11.so -dbdir /etc/pam_pkcs11/nssdb/
  3. Bearbeiten Sie die Datei /etc/pam_pkcs11/pam_pkcs11.conf, wie im folgenden Beispiel gezeigt.
    use_pkcs11_module = opensc;
    ...
    pkcs11_module opensc {
         module = /usr/lib64/opensc-pkcs11.so;
         description = "OpenSC PKCS#11 module";
         slot_num = 0;
         nss_dir = /etc/pam_pkcs11/nssdb;
         crl_dir = /etc/pam_pkcs11/crls;
         support_threads = false;
         cert_policy = ca,signature;
         token_type = "Smart card";
    }
    ...
    use_mappers = cn, null;                         
    ...
    mapper cn {
         debug = false;
         module = internal;
         ignorecase = true;
         mapfile = file:///etc/pam_pkcs11/cn_map;         
    }
  4. Bearbeiten Sie die Konfigurationsdatei /etc/pam_pkcs11/cn_map , damit sie die folgende Zeile enthält.
    ads-hostname -> ads-hostname
  5. Bearbeiten Sie die PAM-Konfiguration.
    1. Um die Konfiguration der Smartcard-Authentifizierung zu ermöglichen, deaktivieren Sie zunächst das Tool pam_config.
      sudo find /etc/pam.d/ -type l -iname "common-*" -delete
      sudo for X in /etc/pam.d/common-*-pc; do cp -ivp $X ${X:0:-3}; done
    2. Erstellen Sie eine Datei mit dem Namen common-auth-smartcard im Verzeichnis /etc/pam.d/. Fügen Sie der Datei den folgenden Inhalt hinzu.
      auth    required        pam_env.so
      auth    sufficient      pam_pkcs11.so
      auth    optional        pam_gnome_keyring.so
      auth    [success=1 default=ignore]      pam_unix.so nullok_secure try_first_pass
      auth    required        pam_winbind.so  use_first_pass
    3. Ersetzen Sie die Zeile auth include common-auth durch die Zeile auth include common-auth-smartcard in den beiden folgenden Dateien: /etc/pam.d/gdm und /etc/pam.d/xscreensaver.
  6. Um den pcscd-Dienst so zu konfigurieren, dass er nach dem Neustart der VM automatisch gestartet wird, bearbeiten Sie die Datei pcscd.service.
    1. Fügen Sie die Zeile WantedBy=multi-user.target in /usr/lib/systemd/system/pcscd.service hinzu, sodass die Datei dem folgenden Beispiel ähnelt.
      [Unit]
      Description=PC/SC Smart Card Daemon
      Requires=pcscd.socket
      
      [Service]
      ExecStart=/usr/sbin/pcscd --foreground --auto-exit
      ExecReload=/usr/sbin/pcscd --hotplug
      
      [Install]
      Also=pcscd.socket
      WantedBy=multi-user.target
    2. Führen Sie nach dem Bearbeiten der pcscd.service-Datei den folgenden Befehl aus.
      sudo systemctl enable pcscd
    Hinweis: Wenn der pcscd-Dienst nach dem Neustart der VM nicht gestartet wird, schlägt die Erstanmeldung über pam_pkcs11 fehl.
  7. Deaktivieren Sie die Firewall.
    sudo rcSuSEfirewall2 stop
    sudo chkconfig SuSEfirewall2_setup off
    sudo chkconfig SuSEfirewall2_init off
    Hinweis: Die Smartcard-Umleitung schlägt manchmal fehl, wenn die Firewall aktiviert ist.
  8. Um die Smartcard-SSO-Funktion (Single Sign-On) zu unterstützen, konfigurieren Sie die Datei /etc/vmware/viewagent-greeter.conf. Siehe Einstellen der Optionen in Konfigurationsdateien auf einem Linux-Desktop.
  9. Installieren Sie das Paket Horizon Agent mit aktivierter Smartcard-Umleitung.
    sudo ./install_viewagent.sh -m yes
    Hinweis: Wenn Sie eine Fehlermeldung erhalten, die Sie auffordert, die Standard-PC/SC-Lite-Bibliothek zu installieren, deinstallieren Sie die benutzerdefinierte PC/SC-Lite-Bibliothek, die derzeit auf der Maschine vorhanden ist, und installieren Sie die Standard-PC/SC-Lite-Bibliothek mithilfe des folgenden Befehls.
    sudo zypper install -f -y pcsc-lite libpcsclite1

    Anschließend können Sie das Horizon Agent-Installationsprogramm ausführen.

  10. Wenn Sie eine benutzerdefinierte PC/SC Lite-Bibliothek verwenden, konfigurieren Sie die Optionen pcscd.maxReaderContext und pcscd.readBody in der Datei /etc/vmware/config.
  11. Starten Sie die VM neu und melden Sie sich erneut an.