Para configurar el redireccionamiento de tarjetas inteligentes en una máquina virtual RHEL 7.x, instale las bibliotecas de las que depende la función, el certificado de CA raíz necesario para la autenticación y la biblioteca PC/SC Lite necesaria. Además, debe editar algunos archivos de configuración para completar la configuración de autenticación.

Utilice el siguiente procedimiento para configurar el redireccionamiento de tarjetas inteligentes en una máquina virtual RHEL 7.x.

Algunos ejemplos incluidos en el procedimiento utilizan valores de marcador de posición para representar entidades en su configuración de red, como el nombre de DNS de su dominio de AD. Reemplace los valores de marcador de posición con información específica de su configuración, tal y como se describe en la siguiente tabla.

Valor del marcador de posición Descripción
DIRECCIÓN_IP_dns Dirección IP del servidor de nombres DNS
midominio.com Nombre DNS de su dominio de AD
MIDOMINIO.COM Nombre DNS de su dominio de AD, en mayúsculas
MIDOMINIO Nombre DNS del grupo de trabajo o el dominio NT que incluye su servidor Samba, en mayúsculas
nombredehost-ads Nombre de host del servidor de AD
Se admite el redireccionamiento de tarjetas inteligentes en escritorios que ejecutan RHEL 7.2 o versiones posteriores.
Nota: Si utiliza la consola de vSphere para iniciar sesión en una máquina virtual RHEL 7.x que tiene instalado Horizon Agent y tiene el redireccionamiento de tarjetas inteligentes habilitado, es posible que experimente un retraso de al menos dos minutos al cerrar sesión. Este retraso al cerrar sesión solo se produce desde la consola de vSphere. La experiencia de cierre de sesión de RHEL 7.x desde Horizon Client no se ve afectada.

Requisitos previos

Integrar una máquina virtual RHEL 7.x con Active Directory para el redireccionamiento de tarjetas inteligentes

Procedimiento

  1. Instale las bibliotecas necesarias.
    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 un certificado de una entidad de certificación (CA) raíz.
    1. Descargue un certificado de CA raíz y guárdelo en su escritorio en /tmp/certificate.cer. Consulte la sección Cómo exportar el certificado raíz firmado por una entidad de certificación.
    2. Busque el certificado de CA raíz que descargó y transfiéralo a un archivo .pem.
      openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
    3. El comando certutil le permitirá instalar el certificado CA raíz en la base de datos del sistema /etc/pki/nssdb.
      certutil -A -d /etc/pki/nssdb -n "root CA cert" -t "CT,C,C" -i /tmp/certificate.pem
    4. Copie el certificado de CA raíz en el directorio /etc/pam_pkcs11/cacerts.
      mkdir -p /etc/pam_pkcs11/cacerts
      
      cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
  3. Desplácese hasta Aplicaciones > Sundry > Autenticación, marque la casilla de verificación Habilitar soporte para tarjetas inteligentes y haga clic en Aplicar.
  4. Copie los controladores de las tarjetas inteligentes y añada la biblioteca de controladores a la base de datos del sistema /etc/pki/nssdb.
    cp libcmP11.so /usr/lib64/
    modutil -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so -dbdir /etc/pki/nssdb/
    Nota: Para obtener el controlador libcmP11.so, consulte al proveedor de tarjetas inteligentes.
  5. Edite la opción module en el archivo de configuración /etc/pam_pkcs11/pam_pkcs11.conf, tal como se muestra en este ejemplo.
    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 el archivo /etc/pam_pkcs11/cn_map para que incluya contenido similar al siguiente ejemplo. Para que se incluya el contenido específico, consulte la información del usuario que aparece en el certificado de la tarjeta inteligente.
    user sc -> user-sc
  7. Edite el archivo de configuración /etc/krb5.conf/, tal y como se muestra en el ejemplo siguiente.
    [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 el archivo de configuración /etc/pam.d/system-auth para que incluya la línea que se muestra en el ejemplo siguiente. Compruebe que el contenido aparece en una sola línea sin un 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 el demonio de PC/SC.
    chkconfig pcscd on
    service pcscd start
  10. Instale PC/SC Lite, versión 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 el paquete Horizon Agent con el redireccionamiento de tarjetas inteligentes habilitado.
    sudo ./install_viewagent.sh -m yes
  12. Reinicie la máquina virtual RHEL 7.x y vuelva a iniciar sesión.