Um die Smartcard-Umleitung auf einem SLED/SLES-Desktop zu konfigurieren, installieren Sie die Bibliotheken, von denen die Funktion abhängt, und das Stamm-CA-Zertifikat, 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 Linux-Desktop-Administrators

Voraussetzungen

Integrieren eines SLED/SLES-Desktops in Active Directory für die Smartcard-Umleitung

Prozedur

  1. Installieren Sie die erforderlichen Bibliothekspakete.
    1. Installieren Sie die PAM-Bibliothek und die anderen Pakete.
      # zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools 
          pcsc-lite pcsc-ccid opensc coolkey pcsc-tools
    2. Installieren Sie für SLED/SLES 12.x SP3 die PC/SC-Tools, indem Sie die folgenden Befehle ausführen.
      # SUSEConnect --list-extensions
      # SUSEConnect -p PackageHub/12.3/x86_64
      # zypper in pcsc-tools
  2. Installieren Sie ein Stamm-CA-Zertifikat.
    1. Laden Sie ein Stamm-CA-Zertifikat herunter und speichern Sie es in /tmp/certificate.cer auf Ihrem Desktop. Siehe How to export Root Certification Authority Certificate.
    2. Suchen Sie das heruntergeladene Stamm-CA-Zertifikat, übertragen Sie es in eine .pem-Datei und erstellen Sie eine Hash-Datei.
      # openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
      # cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
      # chmod a+r /etc/pam_pkcs11/cacerts/certificate.pem
      # cd /etc/pam_pkcs11/cacerts
      # pkcs11_make_hash_link
    3. Installieren Sie vertrauenswürdige Anker in der NSS-Datenbank.
      # mkdir /etc/pam_pkcs11/nssdb
      # certutil -N -d /etc/pam_pkcs11/nssdb
      # certutil -L -d /etc/pam_pkcs11/nssdb
      # certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pam_pkcs11/nssdb
    4. Installieren Sie die erforderlichen Treiber.
      # cp libcmP11.so /usr/lib64/
      # modutil -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so -dbdir /etc/pam_pkcs11/nssdb/
  3. Bearbeiten Sie die Datei /etc/pam_pkcs11/pam_pkcs11.conf.
    1. Löschen Sie die Zeile use_pkcs11_module = nss. Fügen Sie an dieser Stelle die Zeile use_pkcs11_module = mysc hinzu.
    2. Fügen Sie das mysc-Modul hinzu, wie im folgenden Beispiel gezeigt.
      pkcs11_module mysc {
        module = /usr/lib64/libcmP11.so;
        description = "MY Smartcard";
        slot_num = 0;
        nss_dir = /etc/pam_pkcs11/nssdb;
        cert_policy = ca, ocsp_on, signature, crl_auto;
      }
    3. Aktualisieren Sie die Konfiguration des Zuordnungsprogramms für allgemeine Namen, wie im folgenden Beispiel gezeigt.
      # Assume common name (CN) to be the login
      mapper cn {
            debug = false;
            module = internal;
            # module = /usr/lib64/pam_pkcs11/cn_mapper.so;
            ignorecase = true;
            mapfile = file:///etc/pam_pkcs11/cn_map;}
    4. Löschen Sie die Zeile use_mappers = ms. Fügen Sie an dieser Stelle die Zeile use_mappers = cn, null hinzu.
  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.
      # find /etc/pam.d/ -type l -iname "common-*" -delete
      # 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 des Systems automatisch gestartet wird, bearbeiten Sie die Datei /etc/init.d/after.local. Fügen Sie die Zeile rcpcscd start hinzu, damit die Datei dem folgenden Beispiel ähnelt.
    #! /bin/sh
    #
    # Copyright (c) 2010 SuSE LINUX Products GmbH, Germany. All rights reserved.
    #
    # Author: Werner Fink, 2010
    #
    # /etc/init.d/after.local
    #
    # script with local commands to be executed from init after all scripts
    # of a runlevel have been executed.
    #
    # Here you should add things, that should happen directly after
    # runlevel has been reached.
    #
    rcpcscd start
    Hinweis: Wenn der pcscd-Dienst nach dem Neustart des Systems nicht gestartet wird, schlägt die Erstanmeldung über pam_pkcs11 fehl.
  7. Deaktivieren Sie die Firewall.
    # rcSuSEfirewall2 stop
    # chkconfig SuSEfirewall2_setup off
    # chkconfig SuSEfirewall2_init off
    Hinweis: Die Smartcard-Umleitung schlägt manchmal fehl, wenn die Firewall aktiviert ist.
  8. Aktualisieren Sie die PC/SC Lite-Bibliothek auf Version 1.8.8 und verwenden Sie dabei die folgende Befehlsfolge.
    • Führen Sie für SLED/SLES 12.x SP3 die folgende Befehlssequenz aus.
      # SUSEConnect -p sle-sdk/12.3/x86_64
      # zypper in git autoconf automake libtool flex libudev-devel gcc
      # git clone https://salsa.debian.org/rousseau/PCSC.git
      # cd PCSC/
      # git checkout -b pcsc-1.8.8 1.8.8
      # ./bootstrap
      # ./configure -program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr 
        --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include  
        --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib64 
        --mandir=/usr/share/man --infodir=/usr/share/info --disable-static --enable-usbdropdir=/usr/lib64/pcsc/drivers
      # make
      # make install
    • Führen Sie für SLES 12.x SP5 die folgende Befehlssequenz aus.
      # SUSEConnect -p sle-sdk/12.5/x86_64                                      
      # zypper in git-core autoconf automake libtool flex libudev-devel gcc     
      # git clone https://salsa.debian.org/rousseau/PCSC.git
      # cd PCSC/
      # git checkout -b pcsc-1.8.8 1.8.8
      # ./bootstrap
      # ./configure -program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib64 --mandir=/usr/share/man --infodir=/usr/share/info --disable-static --enable-usbdropdir=/usr/lib64/pcsc/drivers
      # make
      # make install
  9. Installieren Sie das Paket Horizon Agent mit aktivierter Smartcard-Umleitung.
    # sudo ./install_viewagent.sh -m yes
  10. Starten Sie Ihr System neu und melden Sie sich an.