Configurare macOS per l'autenticazione solo con smart card

L'autenticazione con smart card garantisce un'efficace autenticazione a due fattori in macOS Sierra e versioni successive. macOS High Sierra 10.13.2 e versioni successive supportano l'autenticazione solo con smart card, quindi sarà obbligatorio usare una smart card e verrà disabilitata l'autenticazione tramite password. 

Questo articolo è rivolto agli amministratori di sistema che impostano le politiche sulla sicurezza in ambienti aziendali che richiedono l'autenticazione con smart card. 

Abilitare l'accesso solo con smart card

Accertati di seguire accuratamente questi passaggi per fare in modo che gli utenti possano accedere al computer.

  1. Abbina una smart card a un account utente amministratore o configura la corrispondenza attributi.
  2. Se hai abilitato controlli certificato rigidi, installa i certificati root o intermedi richiesti.
  3. Verifica di poter accedere a un account amministratore tramite una smart card.
  4. Installa un profilo di configurazione smart card che includa "<key>enforceSmartCard</key><true/>", come mostrato sotto, nell'esempio di profilo di configurazione solo con smart card.
  5. Verifica di riuscire ancora ad accedere usando una smart card.

Per maggiori informazioni sulle impostazioni del payload smart card, consulta la pagina Configuration Profile Reference.

Per maggiori informazioni sull'uso dei servizi smart card, consulta la Guida di riferimento per la distribuzione di macOS o apri Terminale e inserisci man SmartCardServices.

 

Disabilitare l'autenticazione solo con smart card

Se gestisci manualmente i profili installati sul computer, puoi rimuovere il profilo smart card-only in due modi. Puoi usare il pannello Profili delle Preferenze di Sistema, oppure puoi usare lo strumento della riga di comando /usr/bin/profiles. Per maggiori informazioni, apri Terminale e inserisci man profiles.

Sei i computer client sono registrati in Mobile Device Management (MDM), puoi ripristinare l'autenticazione basata su password. A questo scopo, rimuovi il profilo di configurazione smart card che abilita la restrizione smart card-only dai computer client.

Per evitare che gli utenti vengano esclusi dal loro account, rimuovi il profilo enforceSmartCard prima di annullare l'abbinamento di una smart card o di disabilitare la corrispondenza attributi. Se un utente è escluso dal suo account, rimuovi il profilo di configurazione per risolvere il problema.

Se applichi la politica smart card-only prima di abilitare l'autenticazione solo con smart card, un utente potrebbe essere escluso dal suo computer. Per risolvere questo problema, rimuovi la politica smart card-only:

  1. Avvia il computer da macOS Recovery o da un volume esterno.
  2. Elimina il repository dei profili di configurazione. A questo scopo, apri Terminale e inserisci i seguenti comandi: 
    rm /var/db/ConfigurationProfiles/MDM_ComputerPrefs.plist
    rm /var/db/ConfigurationProfiles/.profilesAreInstalled
    rm /var/db/ConfigurationProfiles/Settings/.profilesAreInstalled
    rm /var/db/ConfigurationProfiles/Store/ConfigProfiles.binary
    rm /var/db/ConfigurationProfiles/Setup/.profileSetupDone
  3. Riavvia il computer.
  4. Reinstalla tutti i profili di configurazione presenti prima dell'abilitazione dell'autenticazione solo con smart card.

 

Configurare Secure Shell Daemon (SSHD) per il supporto dell'autenticazione solo con smart card

Gli utenti possono usare la loro smart card per autenticarsi tramite SSH sul computer locale o sui computer remoti configurati correttamente. Segui questi passaggi per configurare SSHD su un computer in modo che supporti l'autenticazione con smart card. 

Aggiorna il file /etc/ssh/sshd_config:

  1. Usa il seguente comando per eseguire il backup del file sshd_config:
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_`date "+%Y-%m-%d_%H:%M"`
  2. Nel file sshd_config, cambia "#ChallengeResponseAuthentication yes" in "ChallengeResponseAuthentication no" e cambia "#PasswordAuthentication yes" in "#PasswordAuthentication no".

Poi, usa i seguenti comandi per riavviare SSHD:

sudo launchctl stop com.openssh.sshd

sudo launchctl start com.openssh.sshd

Se un utente desidera autenticare le sessioni SSH con una smart card, invitalo a seguire questi passaggi:

  1. Usa il seguente comando per esportare la chiave pubblica dalla sua smart card:
    ssh-keygen -D /usr/lib/ssh-keychain.dylib
  2. Aggiungi la chiave pubblica esportata nel passaggio precedente al file ~/.ssh/authorized_keys sul computer di destinazione.
  3. Usa il seguente comando per eseguire il backup del file ssh_config:
    sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup_`date "+%Y-%m-%d_%H:%M"`
  4. Nel file /etc/ssh/ssh_config, aggiungi la riga "PKCS11Provider=/usr/lib/ssh-keychain.dylib".

Se l'utente lo desidera, può anche usare il seguente comando per aggiungere la chiave privata all'agente ssh:

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

 

Abilitare l'autenticazione solo con smart card per il comando SUDO

Usa il seguente comando per eseguire il backup del file /etc/pam.d/sudo:

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

Poi, sostituisci tutti i contenuti del file /etc/pam.d/sudo con il seguente testo:

# 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

 

Abilitare l'autenticazione solo con smart card per il comando LOGIN

Usa il seguente comando per eseguire il backup del file /etc/pam.d/login:

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

Poi, sostituisci tutti i contenuti del file /etc/pam.d/login con il seguente testo:

# 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

 

Abilitare l'autenticazione solo con smart card per il comando SU

Usa il seguente comando per eseguire il backup del file /etc/pam.d/su:

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

Poi, sostituisci tutti i contenuti del file /etc/pam.d/su con il seguente testo:

# 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

 

Esempio di profilo di configurazione smart card-only

Ecco un esempio di profilo di configurazione smart card-only. Puoi usarlo per vedere i tipi di chiavi e stringhe inclusi in questo tipo di profilo.

<?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>

 

Data di pubblicazione: