Para configurar el redireccionamiento de tarjetas inteligentes en una máquina virtual SLED/SLES, instale las bibliotecas de las que depende la función y el certificado de 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

Complete los pasos que se describen en Integrar una máquina virtual SLED/SLES con Active Directory para el redireccionamiento de tarjetas inteligentes.

Procedimiento

  1. Instale la biblioteca PAM y otros paquetes necesarios.
    sudo zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools pcsc-lite pcsc-ccid opensc pcsc-tools

    Es posible que deba habilitar extensiones como PackageHub para instalar todos los paquetes anteriores.

  2. Instale un certificado de CA raíz.
    1. Descargue un certificado de CA raíz y guárdelo en /tmp/certificate.cer en el sistema. Consulte la sección Cómo exportar el certificado raíz firmado por una entidad de certificación.
    2. Instale los anclajes de veracidad en la base de datos de NSS.
      sudo mkdir /etc/pam_pkcs11/nssdb
      sudo certutil -N -d /etc/pam_pkcs11/nssdb
      sudo certutil -L -d /etc/pam_pkcs11/nssdb
      sudo certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pam_pkcs11/nssdb
    3. Instale los controladores necesarios.
      sudo modutil -add "opensc lib" -libfile /usr/lib64/opensc-pkcs11.so -dbdir /etc/pam_pkcs11/nssdb/
  3. 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/lib64/opensc-pkcs11.so;
         description = "OpenSC PKCS#11 module";
         slot_num = 0;
         nss_dir = /etc/pam_pkcs11/nssdb;
         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;         
    }
  4. Edite el archivo de configuración /etc/pam_pkcs11/cn_map para que incluya la siguiente línea.
    ads-hostname -> ads-hostname
  5. Modifique la configuración PAM.
    1. Para poder configurar la autenticación con tarjeta inteligente, desactive primero la herramienta pam_config.
      sudo find /etc/pam.d/ -type l -iname "common-*" -delete
      sudo for X in /etc/pam.d/common-*-pc; do cp -ivp $X ${X:0:-3}; done
    2. Cree un archivo llamado common-auth-smartcard en el directorio /etc/pam.d/. Agregue el siguiente contenido al archivo.
      auth    required        pam_env.so
      auth    sufficient      pam_pkcs11.so
      auth    optional        pam_gnome_keyring.so
      auth    [success=1 default=ignore]      pam_unix.so nullok_secure try_first_pass
      auth    required        pam_winbind.so  use_first_pass
    3. Reemplace la línea auth include common-auth por la línea auth include common-auth-smartcard en los archivos /etc/pam.d/gdm y /etc/pam.d/xscreensaver.
  6. Para configurar el servicio pcscd para que se inicie automáticamente después de que se reinicie la máquina virtual, edite el archivo pcscd.service.
    1. Agregue la línea WantedBy=multi-user.target a de/usr/lib/systemd/system/pcscd.service para que el archivo se parezca al siguiente ejemplo.
      [Unit]
      Description=PC/SC Smart Card Daemon
      Requires=pcscd.socket
      
      [Service]
      ExecStart=/usr/sbin/pcscd --foreground --auto-exit
      ExecReload=/usr/sbin/pcscd --hotplug
      
      [Install]
      Also=pcscd.socket
      WantedBy=multi-user.target
    2. Después de editar el archivo pcscd.service, ejecute el siguiente comando.
      sudo systemctl enable pcscd
    Nota: Si el servicio pcscd no se inicia después de reiniciar la máquina virtual, se producirá un error la primera vez que se inicie sesión a través de pam_pkcs11.
  7. Desactive el firewall.
    sudo rcSuSEfirewall2 stop
    sudo chkconfig SuSEfirewall2_setup off
    sudo chkconfig SuSEfirewall2_init off
    Nota: A veces se produce un error en el redireccionamiento de tarjetas inteligentes cuando el firewall está habilitado.
  8. Para admitir la función de inicio de sesión único (SSO) en tarjetas inteligentes, configure el archivo /etc/vmware/viewagent-greeter.conf. Consulte Opciones de configuración en los archivos de configuración de un escritorio Linux.
  9. 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.
    sudo zypper install -f -y pcsc-lite libpcsclite1

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

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