Para configurar el redireccionamiento de tarjetas inteligentes en un escritorio SLED/SLES, instale las bibliotecas de las que depende la función y el certificado de 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 del escritorio Linux

Requisitos previos

Integrar escritorios SLED/SLES con Active Directory para el redireccionamiento de tarjetas inteligentes

Procedimiento

  1. Instale los paquetes de biblioteca necesarios.
    1. Instale la biblioteca PAM y otros paquetes.
      # zypper install pam_pkcs11 mozilla-nss mozilla-nss-tools 
          pcsc-lite pcsc-ccid opensc coolkey pcsc-tools
    2. Para SLED/SLES 12.x SP3, instale las herramientas de PC/SC ejecutando la siguiente serie de comandos.
      # SUSEConnect --list-extensions
      # SUSEConnect -p PackageHub/12.3/x86_64
      # zypper in pcsc-tools
  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ó, transfiéralo a un archivo .pem y cree un archivo hash.
      # openssl x509 -inform der -in /tmp/certificate.cer -out /tmp/certificate.pem
      # cp /tmp/certificate.pem /etc/pam_pkcs11/cacerts
      # chmod a+r /etc/pam_pkcs11/cacerts/certificate.pem
      # cd /etc/pam_pkcs11/cacerts
      # pkcs11_make_hash_link
    3. Instale los anclajes de veracidad en la base de datos de NSS.
      # mkdir /etc/pam_pkcs11/nssdb
      # certutil -N -d /etc/pam_pkcs11/nssdb
      # certutil -L -d /etc/pam_pkcs11/nssdb
      # certutil -A -n rootca -i certificate.pem -t "CT,CT,CT" -d /etc/pam_pkcs11/nssdb
    4. Instale los controladores necesarios.
      # cp libcmP11.so /usr/lib64/
      # modutil -add "piv card 2.0" -libfile /usr/lib64/libcmP11.so -dbdir /etc/pam_pkcs11/nssdb/
  3. Edite el archivo /etc/pam_pkcs11/pam_pkcs11.conf.
    1. Elimine la línea use_pkcs11_module = nss. En su lugar, agregue la línea use_pkcs11_module = mysc.
    2. Agregue el módulo mysc, tal y como se muestra en el siguiente ejemplo.
      pkcs11_module mysc {
        module = /usr/lib64/libcmP11.so;
        description = "MY Smartcard";
        slot_num = 0;
        nss_dir = /etc/pam_pkcs11/nssdb;
        cert_policy = ca, ocsp_on, signature, crl_auto;
      }
    3. Actualice la configuración del asignador de nombres comunes, tal y como se muestra en el siguiente ejemplo.
      # Assume common name (CN) to be the login
      mapper cn {
            debug = false;
            module = internal;
            # module = /usr/lib64/pam_pkcs11/cn_mapper.so;
            ignorecase = true;
            mapfile = file:///etc/pam_pkcs11/cn_map;}
    4. Elimine la línea use_mappers = ms. En su lugar, agregue la línea use_mappers = cn, null.
  4. Edite el archivo de configuración /etc/pam_pkcs11/cn_map para que incluya la siguiente línea.
    nombredehost-ads -> nombredehost-ads
  5. Modifique la configuración PAM.
    1. Para poder configurar la autenticación con tarjeta inteligente, deshabilite primero la herramienta pam_config.
      # find /etc/pam.d/ -type l -iname "common-*" -delete
      # 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 el sistema, edite el archivo /etc/init.d/after.local. Agregue la línea rcpcscd start de forma que el archivo sea similar al siguiente ejemplo.
    #! /bin/sh
    #
    # Copyright (c) 2010 SuSE LINUX Products GmbH, Germany. All rights reserved.
    #
    # Author: Werner Fink, 2010
    #
    # /etc/init.d/after.local
    #
    # script with local commands to be executed from init after all scripts
    # of a runlevel have been executed.
    #
    # Here you should add things, that should happen directly after
    # runlevel has been reached.
    #
    rcpcscd start
    Nota: Si el servicio pcscd no se inicia después de reiniciar el sistema, se producirá un error la primera vez que se inicie sesión a través de pam_pkcs11.
  7. Deshabilite el firewall.
    # rcSuSEfirewall2 stop
    # chkconfig SuSEfirewall2_setup off
    # chkconfig SuSEfirewall2_init off
    Nota: A veces se produce un error en el redireccionamiento de tarjetas inteligentes cuando el firewall está habilitado.
  8. Actualice la biblioteca PC/SC Lite a la versión 1.8.8 mediante la siguiente secuencia de comandos.
    • Para SLED/SLES 12.x SP3, utilice la siguiente secuencia de comandos.
      # SUSEConnect -p sle-sdk/12.3/x86_64
      # zypper in git autoconf automake libtool flex libudev-devel gcc
      # git clone https://salsa.debian.org/rousseau/PCSC.git
      # cd PCSC/
      # git checkout -b pcsc-1.8.8 1.8.8
      # ./bootstrap
      # ./configure -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/lib64 
        --mandir=/usr/share/man --infodir=/usr/share/info --disable-static --enable-usbdropdir=/usr/lib64/pcsc/drivers
      # make
      # make install
    • Para SLES 12.x SP5, utilice la siguiente secuencia de comandos.
      # SUSEConnect -p sle-sdk/12.5/x86_64                                      
      # zypper in git-core autoconf automake libtool flex libudev-devel gcc     
      # git clone https://salsa.debian.org/rousseau/PCSC.git
      # cd PCSC/
      # git checkout -b pcsc-1.8.8 1.8.8
      # ./bootstrap
      # ./configure -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/lib64 --mandir=/usr/share/man --infodir=/usr/share/info --disable-static --enable-usbdropdir=/usr/lib64/pcsc/drivers
      # make
      # make install
  9. Instale el paquete Horizon Agent con el redireccionamiento de tarjetas inteligentes habilitado.
    # sudo ./install_viewagent.sh -m yes
  10. Reinicie el sistema y vuelva a iniciar sesión.