Para configurar el redireccionamiento de tarjetas inteligentes en una máquina virtual Ubuntu/Debian, 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. Además, debe editar algunos archivos de configuración para completar la configuración de autenticación.

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
nombredehost-ads.midominio.com Nombre de dominio completo (FQDN) del servidor de AD
miservidordetiempo.miempresa.com Nombre DNS del servidor de tiempo NTP
AdminUser Nombre de usuario del administrador de la máquina virtual

Requisitos previos

Integrar una máquina virtual Ubuntu/Debian con Active Directory para el redireccionamiento de tarjetas inteligentes

Procedimiento

  1. Instale las bibliotecas requeridas en la máquina virtual Ubuntu/Debian.
    apt-get install -y pcscd pcsc-tools pkg-config libpam-pkcs11 opensc libengine-pkcs11-openssl libnss3-tools
  2. Instale un certificado de CA raíz.
    1. Descargue un certificado de CA raíz y guárdelo en /tmp/certificate.cer en la máquina virtual Ubuntu. 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. Copie el certificado de CA raíz en el directorio /etc/pam_pkcs11/cacerts.
      cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
  3. Cree un archivo de hash pkcs11.
    chmod a+r certificate.pem
    pkcs11_make_hash_link
  4. Configure la biblioteca pam_pkcs11.
    1. Cree un archivo pam_pkcs11.conf con el contenido de ejemplo predeterminado.
      • (Ubuntu 18.04/20.04, Debian 10.x) Ejecute la siguiente secuencia de comandos.
        mkdir /etc/pam_pkcs11
        zcat /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example.gz | tee /etc/pam_pkcs11/pam_pkcs11.conf
      • (Ubuntu 20.04.1 y versiones posteriores, Ubuntu 22.04, Debian 11.x) Ejecute la siguiente secuencia de comandos.
        mkdir /etc/pam_pkcs11
        cat /usr/share/doc/libpam-pkcs11/examples/pam_pkcs11.conf.example | tee /etc/pam_pkcs11/pam_pkcs11.conf
    2. Edite el archivo /etc/pam_pkcs11/pam_pkcs11.conf, tal y como se muestra en el siguiente ejemplo.
      use_pkcs11_module = opensc;                            
      ...
      pkcs11_module opensc {                                 
           module = /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so;         
           description = "OpenSC PKCS#11 module";               
           slot_num = 0;                           
           ca_dir = /etc/pam_pkcs11/cacerts;
           crl_dir = /etc/pam_pkcs11/crls;       
           support_threads = false;
           cert_policy = ca,signature;
           token_type = "Smart card";                       
      }                                                    
      ...
      use_mappers = cn, null;                        
      ...
      mapper cn {
           debug = false;
           module = internal;
           ignorecase = true;
           mapfile = file:///etc/pam_pkcs11/cn_map; 
      }
    3. Edite el archivo /etc/pam_pkcs11/cn_map para que incluya la siguiente línea.
      Common name -> Login ID
  5. Edite el archivo de configuración /etc/pam.d/gdm-password. Coloque la línea de autorización pam_pkcs11.so antes de la línea common-auth, tal y como se muestra en el siguiente ejemplo.
    #%PAM-1.0
    auth    requisite       pam_nologin.so
    auth    required        pam_succeed_if.so user != root quiet_success
    auth sufficient pam_pkcs11.so                                                                               
    @include common-auth
    auth    optional        pam_gnome_keyring.so
    @include common-account
  6. Para verificar el hardware de la tarjeta inteligente y los certificados instalados en ella, ejecute los siguientes comandos.
    pcsc_scan
    pkcs11_listcerts
    pkcs11_inspect
  7. Instale el paquete Horizon Agent con el redireccionamiento de tarjetas inteligentes habilitado.
    sudo ./install_viewagent.sh -m yes
    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.
    apt-get install --reinstall pcscd libpcsclite1

    A continuación, puede ejecutar el instalador de Horizon Agent.

  8. Si utiliza una biblioteca PC/SC Lite personalizada, configure las opciones pcscd.maxReaderContext y pcscd.readBody en el archivo /etc/vmware/config.
  9. Reinicie la máquina virtual Ubuntu y vuelva a iniciar sesión.