Para configurar el redireccionamiento de tarjetas inteligentes en una máquina virtual RHEL 9.x/8.x, instale las bibliotecas de las que depende la función y el certificado de la entidad de certificación (CA) raíz para permitir la autenticación de confianza de las tarjetas inteligentes.
Procedimiento
- Instale las bibliotecas necesarias.
yum install -y opensc pcsc-lite pcsc-lite-libs pcsc-lite-ccid nss-tools
- Habilite el servicio pcscd.
systemctl enable pcscd
systemctl start pcscd
- Asegúrese de que el archivo de configuración /etc/sssd/sssd.conf contenga las siguientes líneas, que habilitan la autenticación de tarjetas inteligente.
[pam]
pam_cert_auth = True
- Copie el certificado de CA necesario en /etc/sssd/pki/sssd_auth_ca_db.pem.
openssl x509 -inform der -in certificate.cer -out certificate.pem
cp certificate.pem /etc/sssd/pki/sssd_auth_ca_db.pem
- Para comprobar el estado de la tarjeta inteligente, ejecute los siguientes comandos pkcs11-tool y confirme que devuelven la salida correcta.
pkcs11-tool -L
pkcs11-tool --login -O
pkcs11-tool --test --login
- Copie los controladores requeridos y agregue los archivos de biblioteca necesarios al directorio nssdb.
- Ejecute comandos similares al siguiente ejemplo.
Estos comandos de ejemplo muestran cómo agregar
libcmP11.so, el archivo de controlador de la tarjeta Gemalto PIV 2.0, al directorio
nssdb. En lugar de
libcmP11.so, puede sustituir el archivo del controlador por la tarjeta inteligente.
cp libcmP11.so /usr/lib64/
mkdir -p /etc/pki/nssdb
certutil -N -d /etc/pki/nssdb
certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pki/nssdb
modutil -dbdir /etc/pki/nssdb/ -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so
- Compruebe que el certificado esperado se haya cargado correctamente ejecutando el siguiente comando.
# certutil -L -d /etc/pki/nssdb
Compruebe que el comando devuelve un resultado similar al siguiente ejemplo.
Certificate Nickname
rootca
- Compruebe que las bibliotecas esperadas se hayan agregado correctamente ejecutando el siguiente comando.
modutil -dbdir /etc/pki/nssdb -list
Compruebe que el comando devuelve un resultado similar al siguiente ejemplo.
Listing of PKCS #11 Modules
–-----------------------------------------------------------
1. NSS Internal PKCS #11 Module
slots: 2 slots attached
status: loaded
slot: NSS Internal Cryptographic Services
token: NSS Generic Crypto Services
slot: NSS User Private Key and Certificate Services
token: NSS Certificate DB
2. piv card 2.0
library name: /usr/lib/libcmP11.so
slots: There are no slots attached to this module
status: loaded
–-----------------------------------------------------------
- Cree el archivo /usr/share/p11-kit/modules/libcmP11.module. Agregue el siguiente contenido al archivo.
# This file describes how to load the opensc module
# See: http://p11-glue.freedesktop.org/doc/p11-kit/config.html
# This is a relative path, which means it will be loaded from
# the p11-kit default path which is usually $(libdir)/pkcs11.
# Doing it this way allows for packagers to package opensc for
# 32-bit and 64-bit and make them parallel installable
module: /usr/lib64/libcmP11.so
priority: 99
Nota: (RHEL 9.x) También debe eliminar el archivo
/usr/share/p11-kit/modules/p11-kit-trust.module del sistema. Además, si no utiliza
opensc, debe eliminar el archivo
/usr/share/p11-kit/modules/opensc.module.
- Para admitir la función de SSO de tarjetas inteligentes, configure el archivo /etc/vmware/viewagent-greeter.conf. Consulte Opciones de configuración en los archivos de configuración de un escritorio Linux.
- Instale el paquete Horizon Agent con el redireccionamiento de tarjetas inteligentes habilitado.
Nota: Si recibe un mensaje de error que le indica que instale la biblioteca PC/SC Lite predeterminada, desinstale la biblioteca PC/SC Lite personalizada que se encuentra actualmente en la máquina e instale la biblioteca PC/SC Lite predeterminada mediante el siguiente comando.
yum reinstall pcsc-lite-libs pcsc-lite
A continuación, puede ejecutar el instalador de Horizon Agent.
- Si utiliza una biblioteca PC/SC Lite personalizada, configure las opciones pcscd.maxReaderContext y pcscd.readBody en el archivo /etc/vmware/config.
- Reinicie la máquina virtual y vuelva a iniciar sesión.