Para configurar o redirecionamento de smart card em uma máquina virtual (VM) RHEL 7.x, instale as bibliotecas das quais o recurso depende, o certificado de CA raiz necessário para autenticação e a biblioteca PC/SC Lite necessária. Além disso, você deve editar alguns arquivos de configuração para concluir a configuração da autenticação.

Use o procedimento a seguir para configurar o redirecionamento de cartão inteligente em uma VM RHEL 7.x.

Alguns exemplos no procedimento usam valores de espaço reservado para representar entidades em sua configuração de rede, como o nome DNS do seu domínio do AD. Substitua os valores do espaço reservado por informações específicas para sua configuração, conforme descrito na tabela a seguir.

Valor do espaço reservado Descrição
dns_IP_ADDRESS Endereço IP do seu servidor de nomes DNS
meudomínio.com Nome DNS do seu domínio do AD
MEUDOMÍNIO.COM Nome DNS do seu domínio do AD, em letras maiúsculas
MEUDOMÍNIO Nome DNS do grupo de trabalho ou domínio NT que inclui o servidor Samba, em letras maiúsculas
ads-hostname Nome do host do seu servidor AD
Observação: Se você usar o console vSphere para fazer login em um RHEL 7.x. VM que tem o Horizon Agent instalado e o redirecionamento de cartão inteligente ativado, você pode enfrentar um tempo de logout atrasado de dois minutos ou mais. Esse logout atrasado ocorre apenas no console vSphere. A experiência de logout do RHEL 7.x de Horizon Client não é afetada.

Pré-requisitos

Integrar uma máquina virtual RHEL 7.x com Active Directory para redirecionamento de cartão inteligente

Procedimento

  1. Instale as bibliotecas necessárias.
    yum install nss-tools nss-pam-ldapd esc pam_pkcs11 pam_krb5 opensc pcsc-lite-ccid authconfig 
          authconfig-gtk krb5-libs krb5-workstation krb5-pkinit pcsc-lite pcsc-lite-libs
    
  2. Instale um certificado da Autoridade de Certificação Raiz (CA).
    1. Faça download de um certificado de CA raiz e salve-o em /tmp/certificate.cer em sua área de trabalho. Consulte Como exportar o certificado da autoridade de certificação raiz.
    2. Localize o certificado de CA raiz que você baixou e transfira-o para um arquivo .pem.
      openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
    3. Use o comando certutil para instalar o certificado de CA raiz no banco de dados do sistema /etc/pki/nssdb.
      certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/certificate.pem
    4. Copie o certificado da CA raiz para o diretório /etc/pam_pkcs11/cacerts.
      mkdir -p /etc/pam_pkcs11/cacerts
      
      cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
  3. Navegue até Aplicativos (Applications) > Diversos (Sundry) > Autenticação (Authentication), marque a caixa de seleção Ativar suporte a smart card (Enable smart card support) e clique em Aplicar (Apply).
  4. Copie os drivers do smart card e adicione a biblioteca de drivers ao banco de dados do sistema /etc/pki/nssdb.
    cp libcmP11.so /usr/lib64/
    modutil -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so -dbdir /etc/pki/nssdb/
    Observação: Para obter o driver libcmP11.so, consulte o provedor do cartão inteligente.
  5. Edite a configuração do module no arquivo de configuração /etc/pam_pkcs11/pam_pkcs11.conf, conforme mostrado no exemplo a seguir.
    pkcs11_module coolkey {
          module = libcmP11.so;                
          description = "Cool Key";
          slot_num = 0;
          ca_dir = /etc/pam_pkcs11/cacerts; 
          nss_dir = /etc/pki/nssdb;
          cert_policy = ca, signature;
    }
  6. Edite o arquivo /etc/pam_pkcs11/cn_map para que ele inclua conteúdo semelhante ao exemplo a seguir. Para obter o conteúdo específico a ser incluído, consulte as informações do usuário listadas no certificado do cartão inteligente.
    user sc -> user-sc
  7. Edite o arquivo de configuração /etc/krb5.conf/, conforme mostrado no exemplo a seguir.
    [libdefaults]
          dns_lookup_realm = false
          ticket_lifetime = 24h
          renew_lifetime = 7d
          forwardable = true
          rdns = false
          default_realm = MYDOMAIN.COM
          default_ccache_name = KEYRING:persistent:%{uid}
    
    [realms]
          MYDOMAIN.COM = {
                kdc = ads-hostname
                admin_server = ads-hostname
                default_domain = ads-hostname
                pkinit_anchors = FILE:/etc/pki/nssdb/certificate.pem
                pkinit_cert_match = <KU>digitalSignature
                pkinit_kdc_hostname = ads-hostname
          }
    
    [domain_realm]
          .mydomain.com = MYDOMAIN.COM
          mydomain.com = MYDOMAIN.COM
  8. Edite o arquivo de configuração /etc/pam.d/system-auth para que ele inclua a linha mostrada no exemplo a seguir. Certifique-se de que o conteúdo apareça em uma única linha sem um retorno de carro.
    auth  optional  pam_krb5.so use_first_pass no_subsequent_prompt preauth_options=X509_user_identity=PKCS11:/usr/lib64/libcmP11.so
  9. Reinicie o daemon PC/SC.
    chkconfig pcscd on
    service pcscd start
  10. Instale o PC/SC Lite, versão 1.8.8.
    yum install git flex autoconf automake libtool libudev-devel flex
    git clone https://salsa.debian.org/rousseau/PCSC.git
    cd PCSC
    git checkout -b pcsc-1.8.8 1.8.8
    ./bootstrap
    ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --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/lib --mandir=/usr/share/man 
       --infodir=/usr/share/info --disable-static --enable-usbdropdir=/usr/lib64/pcsc/drivers
    make
    make install
  11. Instale o pacote Horizon Agent, com o redirecionamento de cartão inteligente ativado.
    sudo ./install_viewagent.sh -m yes
  12. Reinicie a VM do RHEL 7.x e faça login novamente.