Para configurar o redirecionamento de cartão inteligente em uma máquina virtual (VM) RHEL 9.x/8.x, instale as bibliotecas das quais o recurso depende e o certificado da Autoridade de Certificação (CA) raiz para oferecer suporte à autenticação confiável de cartões inteligentes.
Procedimento
- Instale as bibliotecas necessárias.
yum install -y opensc pcsc-lite pcsc-lite-libs pcsc-lite-ccid nss-tools
- Ative o serviço pcscd.
systemctl enable pcscd
systemctl start pcscd
- Certifique-se de que o arquivo de configuração /etc/sssd/sssd.conf contenha as seguintes linhas, que ativam a autenticação do cartão inteligente.
[pam]
pam_cert_auth = True
- Copie o certificado de CA necessário para /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 verificar o status do cartão inteligente, execute os seguintes comandos pkcs11-tool e confirme se eles retornam a saída correta.
pkcs11-tool -L
pkcs11-tool --login -O
pkcs11-tool --test --login
- Copie os drivers necessários e adicione os arquivos de biblioteca necessários ao diretório nssdb.
- Execute comandos semelhantes ao exemplo a seguir.
Esses comandos de exemplo mostram como adicionar
libcmP11.so, o arquivo de driver para a placa Gemalto PIV 2.0, ao diretório
nssdb. No lugar de
libcmP11.so, você pode substituir o arquivo de driver pelo cartão 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
- Verifique se o certificado esperado foi carregado com êxito executando o seguinte comando.
# certutil -L -d /etc/pki/nssdb
Verifique se o comando retorna uma saída semelhante ao exemplo a seguir.
Certificate Nickname
rootca
- Verifique se as bibliotecas esperadas foram adicionadas com êxito executando o seguinte comando.
modutil -dbdir /etc/pki/nssdb -list
Verifique se o comando retorna uma saída semelhante ao exemplo a seguir.
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
–-----------------------------------------------------------
- Crie o arquivo /usr/share/p11-kit/modules/libcmP11.module. Adicione o seguinte conteúdo ao arquivo.
# 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
Observação: (RHEL 9.x) Você também deve remover o arquivo
/usr/share/p11-kit/modules/p11-kit-trust.module do sistema. Além disso, se você não estiver usando o
opensc, deverá remover o arquivo
/usr/share/p11-kit/modules/opensc.module.
- Para oferecer suporte ao recurso SSO de cartão inteligente, configure o arquivo /etc/vmware/viewagent-greeter.conf. Consulte Definindo opções em arquivos de configuração em uma área de trabalho Linux.
- Instale o pacote Horizon Agent, com o redirecionamento de cartão inteligente ativado.
Observação: Se você receber uma mensagem de erro instruindo-o a instalar a biblioteca PC/SC Lite padrão, desinstale a biblioteca PC/SC Lite personalizada que está atualmente presente na máquina e instale a biblioteca PC/SC Lite padrão usando o seguinte comando.
yum reinstall pcsc-lite-libs pcsc-lite
Em seguida, você pode executar o instalador Horizon Agent.
- Se você estiver usando uma biblioteca personalizada do PC/SC Lite, configure as opções pcscd.maxReaderContext e pcscd.readBody no arquivo /etc/vmware/config.
- Reinicie a máquina virtual e faça login novamente.