Pour configurer la redirection de carte à puce sur une machine virtuelle (VM) 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 VM |
Procédure
- Installez la bibliothèque PAM et d'autres modules requis.
sudo zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools pcsc-lite pcsc-ccid opensc pcsc-tools
Vous devrez peut-être activer des extensions telles que PackageHub pour installer tous les modules précédents.
- Installez un certificat d'autorité de certification racine.
- Téléchargez un certificat d'autorité de certification racine et enregistrez-le dans /tmp/certificate.cer sur le système. Reportez-vous à Exportation du certificat d'autorité de certification de racine.
- Installez les ancres d'approbation dans la base de données NSS.
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
- Installez les pilotes requis.
sudo modutil -add "opensc lib" -libfile /usr/lib64/opensc-pkcs11.so -dbdir /etc/pam_pkcs11/nssdb/
- Modifiez le fichier /etc/pam_pkcs11/pam_pkcs11.conf, comme indiqué dans l'exemple suivant.
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;
}
- 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.
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
- 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 qu'il démarre automatiquement après le redémarrage de la VM, modifiez le fichier pcscd.service.
- Ajoutez la ligne
WantedBy=multi-user.target
à /usr/lib/systemd/system/pcscd.service afin que le fichier soit semblable à l'exemple suivant.
[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
- Après avoir modifié le fichier pcscd.service, exécutez la commande suivante.
sudo systemctl enable pcscd
Note : Si le service pcscd ne démarre pas après le redémarrage de la VM, la première connexion par le biais de pam_pkcs11 échoue.
- Désactivez le pare-feu.
sudo rcSuSEfirewall2 stop
sudo chkconfig SuSEfirewall2_setup off
sudo chkconfig SuSEfirewall2_init off
Note : La redirection de carte à puce échoue parfois lorsque le pare-feu est activé.
- Pour prendre en charge la fonctionnalité Single Sign-On (SSO) par carte à puce, configurez le fichier /etc/vmware/viewagent-greeter.conf. Reportez-vous à la section Définir des options dans des fichiers de configuration sur un poste de travail Linux.
- Installez le module Horizon Agent, avec la redirection de carte à puce activée.
sudo ./install_viewagent.sh -m yes
Note : Si vous obtenez un message d'erreur vous demandant d'installer la bibliothèque PC/SC Lite par défaut, désinstallez la bibliothèque PC/SC Lite personnalisée actuellement présente sur la machine et installez la bibliothèque PC/SC Lite par défaut à l'aide de la commande suivante.
sudo zypper install -f -y pcsc-lite libpcsclite1
Vous pouvez ensuite exécuter le programme d'installation d'Horizon Agent.
- Si vous utilisez une bibliothèque PC/SC Lite personnalisée, configurez les options pcscd.maxReaderContext et pcscd.readBody dans le fichier /etc/vmware/config.
- Redémarrez la VM et reconnectez-vous.