Configurar macOS para la autenticación exclusiva con tarjeta inteligente

La autenticación mediante tarjeta inteligente facilita una autenticación de doble factor muy segura en macOS Sierra y versiones posteriores. macOS High Sierra 10.13.2 y versiones posteriores admiten la autenticación exclusiva con tarjeta inteligente para usar una tarjeta inteligente de forma obligatoria, con lo que desactiva cualquier autenticación basada en contraseñas. 

Este artículo está dirigido a los administradores de sistema que establecen políticas de seguridad en entornos empresariales en los que se requiere la autenticación mediante tarjetas inteligentes. 

Activar el inicio de sesión exclusivo con tarjeta inteligente

Asegúrate de seguir estos pasos al pie de la letra para garantizar que los usuarios puedan iniciar sesión en el ordenador.

  1. Enlaza una tarjeta inteligente con una cuenta de usuario de administrador o configura las correspondencias de atributos.
  2. Si has activado comprobaciones de certificados estrictas, instala los certificados raíz o intermedios necesarios.
  3. Confirma que puedes iniciar sesión en una cuenta de administrador con una tarjeta inteligente.
  4. Instala un perfil de configuración de tarjetas inteligentes que incluya “<key>enforceSmartCard</key><true/>”, como se indica en el perfil de configuración exclusivo con tarjeta inteligente siguiente.
  5. Confirma que puedes seguir iniciando sesión con una tarjeta inteligente.

Si deseas obtener más información sobre los ajustes de la carga de las tarjetas inteligentes, consulta la referencia sobre los perfiles de configuración de Apple.

Para obtener más información acerca del uso de los servicios de tarjetas inteligentes, consulta la Guía sobre la implementación de macOS o abre Terminal e introduce man SmartCardServices.

 

Desactivar la autenticación exclusiva con tarjeta inteligente

Si gestionas los perfiles instalados en el ordenador de forma manual, puedes eliminar el perfil exclusivo con tarjeta inteligente de dos maneras. Puedes usar el panel de perfiles de Preferencias del Sistema o bien utilizar la herramienta de la línea de comandos/usr/bin/profiles. Para obtener más información, abre Terminal e introduce man profiles.

Si los ordenadores cliente están inscritos en Gestión de dispositivos móviles (MDM), tienes la opción de restaurar la autenticación basada en contraseñas. Para ello, elimina el perfil de configuración de tarjetas inteligentes que activa la restricción exclusiva con tarjeta inteligente de los ordenadores cliente.

A fin de evitar que se bloquee la cuenta de los usuarios, elimina el perfil enforceSmartCard antes de desenlazar una tarjeta inteligente o desactivar las correspondencias de atributos. Si se bloquea la cuenta de un usuario, elimina el perfil de configuración para solucionar el problema.

En caso de haber aplicado la política de uso exclusivo de tarjetas inteligentes antes de haber activado la autenticación exclusiva con tarjeta inteligente, el ordenador del usuario puede bloquearse. Para solucionar este problema, elimina la política de uso exclusivo de tarjetas inteligentes:

  1. Enciende el Mac e inmediatamente mantén pulsado Comando-R para arrancar desde Recuperación de macOS. Suelta las teclas cuando veas el logotipo de Apple, un globo que gira o una solicitud de contraseña del firmware. 
  2. Selecciona Utilidad de Discos en la ventana de utilidades y, a continuación, haz clic en Continuar.
  3. En la barra lateral de Utilidad de Discos, selecciona el volumen que estés usando y, a continuación, selecciona Archivo > Montar desde la barra de menús. (Si el volumen ya está montado, esta opción aparece atenuada). A continuación, introduce la contraseña de administrador cuando se te solicite.
  4. Sal de la Utilidad de Discos.
  5. Selecciona Terminal en el menú de utilidades que aparece en la barra de menús.
  6. Elimina el Repositorio de perfiles de configuración. Para ello, abre Terminal e introduce los comandos siguientes.
    En estos comandos, reemplaza <volumename> con el nombre del volumen de macOS en el que se instalaron los ajustes de perfil. 
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/MDM_ComputerPrefs.plist
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/.profilesAreInstalled
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Settings/.profilesAreInstalled
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Store/ConfigProfiles.binary
    rm /Volumes/<volumename>/var/db/ConfigurationProfiles/Setup/.profileSetupDone
  7. Cuando termines, selecciona el menú Apple () > Reiniciar.
  8. Vuelve a instalar los perfiles de configuración que había antes de activar la autenticación exclusiva con tarjeta inteligente.

 

Configurar Secure Shell Daemon (SSHD) para que admita la autenticación exclusiva con tarjeta inteligente

Los usuarios pueden utilizar su tarjeta inteligente para realizar la autenticación a través de SSH en el ordenador local o los ordenadores remotos que estén configurados correctamente. Sigue estos pasos para configurar SSHD en un ordenador a fin de que admita la autenticación de tarjetas inteligentes. 

Actualiza el archivo /etc/ssh/sshd_config:

  1. Emplea el comando siguiente para crear una copia de seguridad del archivo sshd_config:
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_`date "+%Y-%m-%d_%H:%M"`
  2. En el archivo sshd_config, cambia “#ChallengeResponseAuthentication yes” por “ChallengeResponseAuthentication no” y “#PasswordAuthentication yes” por “#PasswordAuthentication no”.

A continuación, utiliza estos comandos para reiniciar SSHD:

sudo launchctl stop com.openssh.sshd

sudo launchctl start com.openssh.sshd

Si un usuario quiere autenticar sesiones SSH mediante una tarjeta inteligente, estos son los pasos que deberá seguir:

  1. Emplea el comando siguiente para exportar la clave pública desde la tarjeta inteligente:
    ssh-keygen -D /usr/lib/ssh-keychain.dylib
  2. Añade la clave pública que se indica en el paso anterior al archivo ~/.ssh/authorized_keys del ordenador de destino.
  3. Usa el comando siguiente para crear una copia de seguridad del archivo ssh_config:
    sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup_`date "+%Y-%m-%d_%H:%M"`
  4. Añade la línea “PKCS11Provider=/usr/lib/ssh-keychain.dylib.” en el archivo /etc/ssh/ssh_config.

Si el usuario así lo desea, también puede usar este otro comando para añadir una clave privada a su agente SSH:

ssh-add -s /usr/lib/ssh-keychain.dylib

 

Activar el uso exclusivo de tarjetas inteligentes para el comando SUDO

Usa el comando siguiente para crear una copia de seguridad del archivo /etc/pam.d/sudo:

sudo cp /etc/pam.d/sudo /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"`

A continuación, sustituye el contenido del archivo /etc/pam.d/sudo por el texto siguiente:

# sudo: auth account password session
auth        sufficient    pam_smartcard.so
auth        required      pam_opendirectory.so
auth        required      pam_deny.so
account     required      pam_permit.so
password    required      pam_deny.so
session     required      pam_permit.so

 

Activar el uso exclusivo de tarjetas inteligentes para el comando LOGIN

Usa el comando siguiente para crear una copia de seguridad del archivo /etc/pam.d/login:

sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"`

A continuación, sustituye el contenido del archivo /etc/pam.d/login por el texto siguiente:

# login: auth account password session
auth        sufficient    pam_smartcard.so
auth        optional      pam_krb5.so use_kcminit
auth        optional      pam_ntlm.so try_first_pass
auth        optional      pam_mount.so try_first_pass
auth        required      pam_opendirectory.so try_first_pass
auth        required      pam_deny.so
account     required      pam_nologin.so
account     required      pam_opendirectory.so
password    required      pam_opendirectory.so
session     required      pam_launchd.so
session     required      pam_uwtmp.so
session     optional      pam_mount.so

 

Activar el uso exclusivo de tarjetas inteligentes para el comando SU

Usa el comando siguiente para crear una copia de seguridad del archivo /etc/pam.d/su:

sudo cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"`

A continuación, sustituye el contenido del archivo /etc/pam.d/su por el texto siguiente:

# su: auth account password session
auth        sufficient    pam_smartcard.so
auth        required      pam_rootok.so
auth        required      pam_group.so no_warn group=admin,wheel ruser root_only fail_safe
account     required      pam_permit.so
account     required      pam_opendirectory.so no_check_shell
password    required      pam_opendirectory.so
session     required      pam_launchd.so

 

Ejemplo de perfil de configuración exclusivo con tarjeta inteligente

A continuación, te presentamos un ejemplo de perfil de configuración exclusivo con tarjeta inteligente. Puedes usarlo para ver los tipos de claves y cadenas que incluye este perfil.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadDescription</key>
<string>Configures smart card-only</string>
<key>PayloadDisplayName</key>
<string>Smart card-only</string>
<key>PayloadIdentifier</key>
<string>com.apple.configprofile.78.</string>
<key>PayloadOrganization</key>
<string>Apple</string>
<key>PayloadType</key>
<string>com.apple.security.smartcard</string>
<key>PayloadUUID</key>
<string>5A15247B-899C-474D-B1D7-DBD82BDE5678</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>UserPairing</key>
<false/>
<key>allowSmartCard</key>
<true/>
<key>checkCertificateTrust</key>
<false/>
<key>enforceSmartCard</key>
<true/>
</dict>
</array>
<key>PayloadDescription</key>
<string>Smartcard profile.</string>
<key>PayloadDisplayName</key>
<string>Smart card-only</string>
<key>PayloadIdentifier</key>
<string>com.apple.configprofile.77</string>
<key>PayloadOrganization</key>
<string></string>
<key>PayloadRemovalDisallowed</key>
<false/>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadScope</key>
<string>system</string>
<key>PayloadUUID</key>
<string>7D34CC86-C707-44D2-9A9F-C5F6E347BD77</string>
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>

 

Fecha de publicación: