Pour configurer la redirection de carte à puce sur un poste de travail SLED/SLES, installez les bibliothèques dont dépend la fonctionnalité et le certificat d'autorité de certification racine pour prendre en charge l'authentification approuvée des cartes à puce. En outre, vous devez modifier certains fichiers de configuration pour terminer la configuration de l'authentification.

Certains exemples de la procédure utilisent des valeurs d'espace réservé pour représenter des entités dans votre configuration réseau, telles que le nom DNS de votre domaine AD. Remplacez les valeurs d'espace réservé par des informations spécifiques à votre configuration, comme décrit dans le tableau suivant.

Valeur d'espace réservé Description
dns_IP_ADDRESS Adresse IP de votre serveur de nom DNS
mydomain.com Nom DNS de votre domaine AD
MYDOMAIN.COM Nom DNS de votre domaine AD en majuscules
MYDOMAIN Nom DNS du groupe de travail ou domaine NT qui inclut votre serveur Samba, en majuscules
ads-hostname Nom d'hôte de votre serveur AD
ads-hostname.mydomain.com Nom de domaine complet (FQDN) de votre serveur AD
mytimeserver.mycompany.com Nom DNS de votre serveur de temps NTP
AdminUser Nom d'utilisateur de l'administrateur de poste de travail Linux

Conditions préalables

Intégrer un poste de travail SLED/SLES à Active Directory pour la redirection de carte à puce

Procédure

  1. Installez les modules de bibliothèque requis.
    1. Installez la bibliothèque PAM et d'autres modules.
      # zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools 
          pcsc-lite pcsc-ccid opensc coolkey pcsc-tools
    2. Pour SLED/SLES 12.x SP3, installez les outils PC/SC en exécutant la série de commandes suivante.
      # SUSEConnect --list-extensions
      # SUSEConnect -p PackageHub/12.3/x86_64
      # zypper in pcsc-tools
  2. Installez un certificat d'autorité de certification racine (CA).
    1. Téléchargez un certificat d'autorité de certification racine et enregistrez-le dans /tmp/certificate.cer sur votre poste de travail. Reportez-vous à Exportation du certificat d'autorité de certification de racine.
    2. Localisez le certificat d'autorité de certification racine que vous avez téléchargé, transférez-le vers un fichier .pem et créez un fichier de hachage.
      # 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. Installez les ancres d'approbation dans la base de données NSS.
      # 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. Installez les pilotes requis.
      # cp libcmP11.so /usr/lib64/
      # modutil -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so -dbdir /etc/pam_pkcs11/nssdb/
  3. Modifiez le fichier /etc/pam_pkcs11/pam_pkcs11.conf.
    1. Supprimez la ligne use_pkcs11_module = nss. À sa place, ajoutez la ligne use_pkcs11_module = mysc.
    2. Ajoutez le module mysc, comme indiqué dans l'exemple suivant.
      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. Mettez à jour la configuration du mappeur de nom commun, comme indiqué dans l'exemple suivant.
      # 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. Supprimez la ligne use_mappers = ms. À sa place, ajoutez la ligne use_mappers = cn, null.
  4. Modifiez le fichier de configuration /etc/pam_pkcs11/cn_map de sorte qu'il comprenne la ligne suivante.
    ads-hostname -> ads-hostname
  5. Modifiez la configuration PAM.
    1. Pour qu'il soit possible de configurer l'authentification par carte à puce, désactivez d'abord l'outil 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. Créez un fichier nommé common-auth-smartcard dans le répertoire /etc/pam.d/. Ajoutez le contenu suivant au fichier.
      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. Remplacez la ligne auth include common-auth par la ligne auth include common-auth-smartcard dans les deux fichiers /etc/pam.d/gdm et /etc/pam.d/xscreensaver.
  6. Pour configurer le service pcscd de manière à ce qu'il démarre automatiquement après le redémarrage du système, modifiez le fichier /etc/init.d/after.local. Ajoutez la ligne rcpcscd start afin que le fichier ressemble à l'exemple suivant.
    #! /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
    Note : Si le service pcscd ne démarre pas après le redémarrage du système, la première connexion via pam_pkcs11 échoue.
  7. Désactivez le pare-feu.
    # rcSuSEfirewall2 stop
    # chkconfig SuSEfirewall2_setup off
    # chkconfig SuSEfirewall2_init off
    Note : La redirection de carte à puce échoue parfois lorsque le pare-feu est activé.
  8. Mettez à jour la bibliothèque PC/SC Lite pour obtenir la version 1.8.8 à l'aide de la séquence de commandes suivante.
    • Pour SLED/SLES 12.x SP3, utilisez la séquence de commandes suivante.
      # 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
    • Pour SLES 12.x SP5, utilisez la séquence de commandes suivante.
      # 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. Installez le module Horizon Agent, avec la redirection de carte à puce activée.
    # sudo ./install_viewagent.sh -m yes
  10. Redémarrez votre système et reconnectez-vous.