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.

Pré-requisitos

Procedimento

  1. Instale as bibliotecas necessárias.
    yum install -y opensc pcsc-lite pcsc-lite-libs pcsc-lite-ccid nss-tools
  2. Ative o serviço pcscd.
    systemctl enable pcscd
    systemctl start pcscd
  3. 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
  4. 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
  5. 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
  6. Copie os drivers necessários e adicione os arquivos de biblioteca necessários ao diretório nssdb.
    1. 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
    2. 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
    3. 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
      –-----------------------------------------------------------
  7. 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.
  8. 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.
  9. Instale o pacote Horizon Agent, com o redirecionamento de cartão inteligente ativado.
    • Se estiver usando o instalador do .rpm:
      1. Execute o instalador para instalar o Horizon Agent com as opções de recurso padrão.
        sudo rpm -ivh VMware-horizonagent-linux-YYMM-y.y.y-xxxxxxx.el8.x86_64.rpm
      2. Para adicionar o recurso de redirecionamento de smart card, execute o script ViewSetup.sh.
        /usr/lib/vmware/viewagent/bin/ViewSetup.sh -m yes
    • Se estiver usando o instalador do .tar.gz, execute o instalador com o parâmetro para ativar o redirecionamento de cartão inteligente:
      sudo ./install_viewagent.sh -m yes
    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.

  10. 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.
  11. Reinicie a máquina virtual e faça login novamente.