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 |
Procédure
- Installez les modules de bibliothèque requis.
- 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
- 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
- Installez un certificat d'autorité de certification racine (CA).
- 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.
- 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
- 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
- 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/
- Modifiez le fichier /etc/pam_pkcs11/pam_pkcs11.conf.
- Supprimez la ligne use_pkcs11_module = nss. À sa place, ajoutez la ligne use_pkcs11_module = mysc.
- 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;
}
- 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;}
- Supprimez la ligne use_mappers = ms. À sa place, ajoutez la ligne use_mappers = cn, null.
- Modifiez le fichier de configuration /etc/pam_pkcs11/cn_map de sorte qu'il comprenne la ligne suivante.
ads-hostname -> ads-hostname
- Modifiez la configuration PAM.
- 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
- 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
- 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.
- 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.
- 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é.
- 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
- Installez le module Horizon Agent, avec la redirection de carte à puce activée.
# sudo ./install_viewagent.sh -m yes
- Redémarrez votre système et reconnectez-vous.