스마트 카드 전용 인증을 위한 macOS 구성하기

스마트 카드 인증은 macOS Sierra 및 이후 버전에서 강력한 이중 인증을 제공합니다. macOS High Sierra 10.13.2 및 이후 버전에서 스마트 카드를 사용하는 데 필요한 스마트 카드 전용 인증을 지원하며, 이 인증을 사용하면 모든 암호 기반 인증이 비활성화됩니다. 

이 문서는 스마트 카드 인증이 필요한 기업 환경에 보안 정책을 설정하는 시스템 관리자를 위해 작성되었습니다. 

스마트 카드 전용 로그인 활성화하기

사용자가 컴퓨터에 로그인할 수 있도록 다음 단계를 주의하여 따릅니다.

  1. 스마트 카드를 관리자 사용자 계정과 쌍으로 연결하거나 속성 일치를 구성합니다.
  2. 엄격한 인증서 확인을 활성화한 경우 필요한 모든 루트 인증서 또는 중간 인증서를 설치합니다.
  3. 스마트 카드를 사용하여 관리자 계정에 로그인할 수 있는지 확인합니다.
  4. 아래의 스마트 카드 전용 구성 프로파일에 표시된 대로 "<key>enforceSmartCard</key><true/>"가 포함된 스마트 카드 구성 프로파일을 설치합니다.
  5. 스마트 카드를 사용하여 여전히 로그인할 수 있는지 확인합니다.

스마트 카드 페이로드 설정에 대한 자세한 내용은 Apple 구성 프로파일 참조서를 참조하십시오.

스마트 카드 서비스 사용에 대한 자세한 내용은 macOS 배포 설명서를 참조하거나 터미널을 열고 man SmartCardServices를 입력합니다.

 

스마트 카드 전용 인증 비활성화하기

컴퓨터에 설치된 프로파일을 수동으로 관리하는 경우 두 가지 방법으로 스마트 카드 전용 프로파일을 제거할 수 있습니다. 하나는 시스템 환경설정의 프로파일 패널을 사용하는 방법이고, 다른 하나는 /usr/bin/profiles 명령어 라인 도구를 사용하는 방법입니다. 자세한 내용은 터미널을 열고 man profiles를 입력합니다.

클라이언트 컴퓨터가 MDM(모바일 장비 관리)에 등록된 경우 암호 기반 인증을 복원할 수 있습니다. 암호 기반 인증을 복원하려면 클라이언트 컴퓨터에서 스마트 카드 전용 제한 설정을 활성화하는 스마트 카드 구성 프로파일을 제거합니다.

사용자의 계정이 잠기는 일이 없도록, 스마트 카드 연결을 해제하거나 속성 일치를 비활성화하기 전에 enforceSmartCard 프로파일을 제거합니다. 사용자 계정이 잠기면 구성 프로파일을 제거하여 문제를 해결합니다.

스마트 카드 전용 인증을 활성화하기 전에 스마트 카드 전용 정책을 적용할 경우 사용자가 컴퓨터를 사용하지 못하게 될 수 있습니다. 이 문제를 해결하려면 아래와 같이 스마트 카드 전용 정책을 제거합니다.

  1. Mac을 켠 다음 바로 command-R 키를 길게 눌러 macOS 복구에서 시동합니다. Apple 로고, 회전하는 지구 모양 또는 펌웨어 암호 확인 메시지가 나타나면 키를 놓습니다.
  2. 유틸리티 윈도우에서 '디스크 유틸리티'를 선택한 다음 '계속'을 클릭합니다.
  3. 디스크 유틸리티 사이드바에서, 사용할 볼륨을 선택한 다음 메뉴 막대에서 파일 > 마운트를 선택합니다. 볼륨이 이미 마운트되어 있는 경우에는 이 옵션이 흐리게 표시됩니다. 그런 다음 메시지가 나타나면 관리자 암호를 입력합니다.
  4. 디스크 유틸리티를 종료합니다.
  5. 메뉴 막대의 유틸리티 메뉴에서 '터미널'을 선택합니다.
  6. 구성 프로파일 저장소를 삭제합니다. 구성 프로파일 저장소를 삭제하려면 '터미널'을 열고 다음 명령을 입력합니다.
    다음 명령에서 <volumename>을 프로파일 설정이 설치된 macOS 볼륨의 이름으로 대체합니다. 
    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. 완료한 후 Apple () 메뉴 > 재시동을 선택합니다.
  8. 스마트 카드 전용 인증을 활성화하기 전에 있었던 모든 구성 프로파일을 다시 설치합니다.

 

스마트 카드 전용 인증을 지원하도록 SSHD(Secure Shell Daemon) 구성하기

사용자는 스마트 카드를 사용하여 SSH를 통해 올바르게 구성된 로컬 컴퓨터나 원격 컴퓨터를 인증할 수 있습니다. 스마트 카드 인증을 지원하도록 컴퓨터에 SSHD를 구성하려면 아래 단계를 따릅니다. 

아래와 같이 /etc/ssh/sshd_config 파일을 업데이트합니다.

  1. 다음 명령을 사용하여 sshd_config 파일을 백업합니다.
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup_`date "+%Y-%m-%d_%H:%M"`
  2. sshd_config 파일에서 "#ChallengeResponseAuthentication yes"를 "ChallengeResponseAuthentication no"로 변경하고 "#PasswordAuthentication yes"를 "#PasswordAuthentication no"로 변경합니다.

그런 다음, 다음 명령을 사용하여 SSHD를 재시동합니다.

sudo launchctl stop com.openssh.sshd

sudo launchctl start com.openssh.sshd

스마트 카드를 사용하여 SSH 세션을 인증하려는 사용자에게는 다음 단계를 따르도록 안내합니다.

  1. 다음 명령을 사용하여 스마트 카드에서 공개 키를 내보냅니다.
    ssh-keygen -D /usr/lib/ssh-keychain.dylib
  2. 이전 단계에서 내보낸 공개 키를 대상 컴퓨터의 ~/.ssh/authorized_keys 파일에 추가합니다.
  3. 다음 명령을 사용하여 ssh_config 파일을 백업합니다.
    sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup_`date "+%Y-%m-%d_%H:%M"`
  4. /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

 

스마트 카드 전용 구성 프로파일 샘플

다음은 스마트 카드 전용 구성 프로파일의 샘플입니다. 이 샘플을 통해, 이러한 유형의 프로파일에 포함된 키와 문자열 종류를 확인할 수 있습니다.

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

 

게시일: