macOS Smart Card Only Authentication
안녕하세요. 마르탱이 입니다. 지난 번 글에 이어서 Smart Card가 macOS에 등록되었다고 가정하고
macOS에서 패스워드 사용을 중지하고 항상 Smart Card로만 authentication을 할 수 있도록 진행 해 보겠습니다.
진행 하기 전에 주의 사항이 있는데요. Smart Card 분실 시 OS설치를 다시 해야 하므로 주의 부탁드립니다.
또, Intel based mac에서는 filevault2가 enable되어 전체 disk가 encrypted 되어 있을 시 부팅 시 매번 한 번은 password로
로그인 해야 합니다. apple silicon mac은 boot time에 filevault2가 켜 있더라도 decrypt되도록 설계되었습니다.
터치 아이디가 있는데 웬 이런 생고생? 이라고 생각 하실 수도 있는데 아직 Touch ID만으로는 apple silicon에서도 filevault2가
켜 있을 시 password를 한 번 넣어야 Touch ID로 authentication이 가능합니다.
그럼 들어가 보겠습니다.
이 번 글은 apple document 쪽에도 잘 설명 되어있습니다. (https://support.apple.com/guide/deployment/configure-a-mac-smart-cardonly-authentication-depfce8de48b/web)
1. Smart Card Only Authentication 켜기
터미널에서 다음과 같이 명령어를 입력 합니다.
sudo defaults write /Library/Preferences/com.apple.security.smartcard enforceSmartCard -bool true
그리고 /private/etc/SmartcardLogin.plist 라는 파일을 만들어서 다음의 내용으로 채워 넣습니다.
<?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>AttributeMapping</key>
<dict>
<key>dsAttributeString</key>
<string>dsAttrTypeStandard:AltSecurityIdentities</string>
<key>fields</key>
<array>
<string>NT Principal Name</string>
</array>
<key>formatString</key>
<string>Kerberos:$1</string>
</dict>
<key>NotEnforcedGroup</key>
<string>EXEMPT_GROUP</string>
</dict>
</plist>
이제 바로 적용이 됩니다. 앞으로는 다시 로그인 할 때 Smart Card 없이는 로그인이 안됩니다.
2. 예외 만들기
macOS settings안에 Users & Groups메뉴에서 EXEMPT_GROUP 이라는 그룹을 만드시고 예외로 반영하고 싶은 User를
그룹에 넣습니다. 그리고 다음의 명령을 터미널에서 입력합니다. 그렇게 되면 EXEMPT_GROUP에 속한 user는 password
authentication이 허가 됩니다.
sudo defaults write /Library/Preferences/com.apple.security.smartcard allowUnmappedUsers -int 1
여기에서 주의 사항은 filevault2가 켜 있는 상황에서는 apple silicon의 경우 예외 적용이 안됩니다. 이는 filevault2 의 decrytion이
암호로 되지 않고 smart card로 되기 때문에 그렇습니다.
3. 등록된 Smart Card가 여러개 일 경우
마지막으로 authenticate한 Smart Card로 filevault2를 복호화 하기 때문에 카드 분실에 유의해야 합니다.
지난 번에 이어서 smart card로 mac을 authenticate하는 방법을 알아봤는데요. 굳이 이렇게 까지 해야 하나 생각이 들지만
다음에 이야기 할 Smart Card (Yubikey)를 사용해서 ssh 서버에 접속하기를 읽으시면 서버 운용할 때에 password를
사용하지 않게 되고 또 그러면 plain text로 password를 전송 하지 않아도 되니 보안 상 좋아집니다. 첫 두 글을 macOS
튜토리얼로 진행 했는데 local machine을 linux로도 할 수 있습니다. 다음 번 글은 remote machine이 macOS이던 linux이던
시놀로지 DSM이던 상관없이 openssh가 돌고 있으면 됩니다.
감사합니다.