設定 macOS 以使用智慧卡專用認證
智慧卡認證可在 macOS Sierra 和以上版本中提供高強度的雙重認證功能。macOS High Sierra 10.13.2 和以上版本支援智慧卡專用認證,此功能會停用所有密碼認證,以強制使用智慧卡。
本文旨在針對為需要智慧卡認證的企業環境設置安全性規則的系統管理者提供參考。
啟用智慧卡專用登入
請務必仔細遵循以下步驟,以確保使用者能登入電腦。
將智慧卡配對至管理使用者帳號,或設定屬性匹配功能。
若已啟用嚴格的憑證檢查機制,請安裝所有必要的根憑證或中繼憑證。
確認是否能使用智慧卡登入管理者帳號。
安裝包含「僅限智慧卡的設定描述檔所示。
確認是否仍能使用智慧卡登入。
如需智慧卡承載資料設定的詳細資訊,請參閱「Apple 設定描述檔參考」。
如需使用智慧卡服務的詳細資訊,請參閱「macOS 部署指南」,或開啟「終端機」並輸入 man SmartCardServices
。
停用智慧卡專用認證
若你是以手動方式管理電腦上安裝的描述檔,你可以用兩種方式移除智慧卡專用描述檔。你可以使用「系統偏好設定」的「描述檔」面板,或使用 /usr/bin/profiles 命令列工具。如需更多資訊,請開啟「終端機」並輸入 man profiles
。
如果用戶端電腦已登記行動裝置管理(MDM),你可以回復使用密碼認證。若要回復,請從用戶端電腦移除會啟用智慧卡專用取用限制的智慧卡設定描述檔。
為防止使用者的帳號遭鎖定,請先移除 enforceSmartCard 描述檔之後,再取消配對智慧卡或停用屬性匹配功能。如果使用者的帳號遭鎖定,請移除設定描述檔以解決問題。
若你在啟用智慧卡專用認證之前套用智慧卡專用規則,使用者的電腦可能會遭鎖定。若要解決這個問題,請移除智慧卡專用規則:
將 Mac 開機,然後立即按住 Command-R,從「macOS 復原」啟動。看到 Apple 標誌、旋轉的地球或出現需要韌體密碼的提示時,才放開這些按鍵。
從「工具程式」視窗中選擇「磁碟工具程式」,然後按一下「繼續」。
從「磁碟工具程式」側邊欄,選擇所使用的卷宗,然後從選單列選擇「檔案」>「裝載」。(若已裝載該卷宗,這個選項會變暗。)接著在系統提示時,輸入管理者密碼。
結束「磁碟工具程式」。
從選單列的「工具程式」選單選擇「終端機」。
刪除 Configuration Profile Repository(設定描述檔資源庫)。若要刪除,請開啟「終端機」並輸入以下指令。
在這些指令中,請更換 安裝描述檔設定的 macOS 卷宗名稱。
rm /Volumes//var/db/ConfigurationProfiles/MDM_ComputerPrefs.plist
rm /Volumes//var/db/ConfigurationProfiles/.profilesAreInstalled
rm /Volumes//var/db/ConfigurationProfiles/Settings/.profilesAreInstalled
rm /Volumes//var/db/ConfigurationProfiles/Store/ConfigProfiles.binary
rm /Volumes//var/db/ConfigurationProfiles/Setup/.profileSetupDone
完成時,請選擇「蘋果」()選單 >「重新啟動」。
重新安裝在啟用智慧卡專用認證之前既有的所有設定描述檔。
設定 Secure Shell Daemon(SSHD)以支援智慧卡專用認證
使用者可以使用智慧卡,透過 SSH 對本機電腦或配置正確的遠端電腦進行認證。請依照以下步驟在電腦上設定 SSHD,以便能支援智慧卡認證。
更新 /etc/ssh/sshd_config 檔案:
使用下列指令來備份 sshd_config 檔案:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_`date "+%Y-%m-%d_%H:%M"`
在 sshd_config 檔案中,將「#ChallengeResponseAuthentication yes」改為「ChallengeResponseAuthentication no」,並將「#PasswordAuthentication yes」改為「#PasswordAuthentication no」。
接著,使用以下指令來重新啟動 SSHD:
sudo launchctl stop com.openssh.sshd
sudo launchctl start com.openssh.sshd
若使用者想使用智慧卡認證 SSH 工作階段,請使用者依照以下步驟操作:
使用下列指令從智慧卡輸出公開金鑰:
ssh-keygen -D /usr/lib/ssh-keychain.dylib
將前一步驟取得的公用密鑰加入目標電腦上的 ~/.ssh/authorized_keys 檔案。
使用下列指令來備份 ssh_config 檔案:
sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup_`date "+%Y-%m-%d_%H:%M"`
在 /etc/ssh/ssh_config 檔案中,加入「PKCS11Provider=/usr/lib/ssh-keychain.dylib」一行。
若使用者想要,也可以使用以下指令,將專用密鑰加入自己的 ssh-agent:
ssh-add -s /usr/lib/ssh-keychain.dylib
為 SUDO 指令啟用智慧卡專用功能
使用以下指令備份 /etc/pam.d/sudo 檔案:
sudo cp /etc/pam.d/sudo /etc/pam.d/sudo_backup_`date "+%Y-%m-%d_%H:%M"`
接著,將 /etc/pam.d/sudo 檔案的所有內容取代成以下文字:
# 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
為 LOGIN 指令啟用智慧卡專用功能
使用以下指令備份 /etc/pam.d/login 檔案:
sudo cp /etc/pam.d/login /etc/pam.d/login_backup_`date "+%Y-%m-%d_%H:%M"`
接著,將 /etc/pam.d/login 檔案的所有內容取代成以下文字:
# 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
為 SU 指令啟用智慧卡專用功能
使用以下指令備份 /etc/pam.d/su 檔案:
sudo cp /etc/pam.d/su /etc/pam.d/su_backup_`date "+%Y-%m-%d_%H:%M"`
接著,將 /etc/pam.d/su 檔案的所有內容取代成以下文字:
# 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
智慧卡專用設定描述檔範例
以下是智慧卡專用設定描述檔的範例。你可用以查看這種類型的描述檔包含哪些種類的密鑰和字串。
PayloadContent PayloadDescription 設定僅限智慧卡 PayloadDisplayName 僅限智慧卡 PayloadIdentifier com.apple.configprofile.78. PayloadOrganization Apple PayloadType com.apple.security.smartcard PayloadUUID 5A15247B-899C-474D-B1D7-DBD82BDE5678 PayloadVersion 1 UserPairing allowSmartCard checkCertificateTrust enforceSmartCard PayloadDescription 智慧卡描述檔。 PayloadDisplayName 僅限智慧卡 PayloadIdentifier com.apple.configprofile.77 PayloadOrganization PayloadRemovalDisallowed PayloadType 組態設定 PayloadScope 系統 PayloadUUID 7D34CC86-C707-44D2-9A9F-C5F6E347BD77 PayloadVersion 1