VPN 클라이언트의 암호 프롬프트는 비슷해 보이지만 같지 않습니다. 비슷한 대화 상자 뒤에는 설치 중 보호된 위치에 파일을 쓰는 일, 네트워크 구성을 추가하거나 바꾸는 일, 트래픽을 운반하는 시스템 확장 프로그램을 활성화하는 일, 그리고 관리 서버가 이미 설정한 정책을 따르는 일이라는 네 가지 다른 동작이 숨어 있습니다. 각각 담당자도, 영향 범위도, 제대로 동작했는지 확인하는 방법도 다릅니다. 보고 있는 메시지를 이 네 가지 중 하나에 맞추는 것이 이 작업의 전부입니다.

세 가지 다른 승인이 똑같이 보인다

설치 프로그램 권한 부여는 가장 단순한 경우로, 패키지가 일반 사용자가 바꿀 수 없는 디렉터리에 쓰고 macOS가 이를 허용하려고 관리자 자격 증명을 요청합니다. 시스템은 소프트웨어가 안전한지 판단하는 것이 아니라, 그곳에 써도 되는지 판단합니다. 그래서 패키지가 깔끔하게 설치되고도 쓸모없을 수 있습니다. 설치 승인은 이후에 코드 실행이 허용되는지에 대해 아무것도 말하지 않으며, 설치 후에도 앱이 네트워크에 영향을 주려면 두 번째 승인이 필요할 수 있습니다.

네트워크 구성 권한 부여는 시스템의 연결 목록 변경을 포함합니다. VPN 서비스를 추가하거나 네트워크 관리자가 구성한 설정을 바꾸려면 권한 상향이 필요한데, 그 정의가 컴퓨터의 모든 계정에 영향을 주기 때문입니다. 이 승인은 구성 권한을 주는 것이지 트래픽 권한을 주는 것이 아닙니다.

패킷이 어떻게 이동하는지에 중요하게 작용하는 것은 확장 프로그램 승인입니다. 최신 클라이언트는 macOS가 시스템에 로드하는 시스템 확장 프로그램을 설치하며, macOS는 이를 활성화하기 전에 개인정보 보호 및 보안 또는 로그인 항목 및 확장 프로그램에서 명시적 결정을 요구합니다. 네 번째 경우는 관리되는 Mac으로, 정책이 확장 프로그램을 미리 승인해 사용자에게 대화 상자가 아예 보이지 않습니다.

각 승인이 실제로 바꾸는 것

설치 프로그램은 디스크의 파일을 바꾸고, 남은 찌꺼기를 빼면 파일이 제거될 때 그 결과도 끝납니다. 네트워크 구성은 연결 목록에 나타나는 서비스 정의를 추가하며 요청 시 규칙으로 다시 활성화될 수 있습니다. 확장 프로그램 승인은 시스템이 어떤 코드를 로드하고 계속 실행할지 바꾸므로, 일부 작업 흐름에서는 눈에 보이는 앱을 제거해도 남습니다. 앱 번들을 제거해도 그 확장 프로그램이 항상 제거되지는 않으며, 남겨진 확장 프로그램은 네트워크 권한을 그대로 유지합니다.

이 구분은 증상을 예측하는데, 설치되었지만 한 번도 연결되지 않는다면 보통 확장 프로그램이 어디에서도 승인되지 않았다는 뜻입니다. 연결되지만 다음 변경에서 설정이 되돌아간다면 보통 관리 정책이 그 정의를 소유한다는 뜻입니다.

서명과 게시자가 답을 결정한다

승인하기 전에 대화 상자의 아이콘이 시사하는 것이 아니라 누가 서명했는지 읽으세요. 로컬 검사 두 번이면 서명 주체와 이 컴퓨터에서 시스템 평가가 통과하는지 알 수 있습니다.

codesign -dv --verbose=2 /Applications/ExampleVPN.app
spctl -a -vv /Applications/ExampleVPN.app

서명되지 않았거나 공증되지 않은 번들이 자동으로 악성인 것은 아니지만, 의도한 공급업체의 서명된 번들과는 다른 결정을 받을 자격이 있습니다. 공급업체 자체 사이트가 아니라 메시지로 도착한 패키지는 답이 그냥 아니오인 경우입니다.

이름은 재사용하기 쉽고 식별자는 그렇지 않으므로, 앱의 표시 이름을 믿는 대신 팀 식별자를 공급업체가 공개한 신원과 비교하세요. 공급업체가 설치 안내서에 식별자를 공개한다면 그 페이지가 비교의 기준이며 불일치를 보고해야 할 곳이기도 합니다. 재판매업체, 다시 패키징된 빌드, 포럼에서 가져온 휴대용 사본의 클라이언트는 같은 공급업체의 서명된 다운로드보다 더 의심할 만합니다.

정책이 결정을 소유할 때

기업 Mac에서는 관리자가 이미 결정했을 수 있습니다. 관리 프로필이 VPN 정의를 전달하고, 확장 프로그램을 미리 승인하며, 연결을 제거할 수 없도록 잠글 수 있습니다. 그런 구성에서 암호 입력 요청은 애초에 당신의 것이 아니었던 결정을 뒤집으라는 요청인 경우가 많습니다.

설치를 강제하려고 시동 보안을 낮추거나 관리를 분리하면 임시 문제를 해결하려고 컴퓨터의 위협 모델을 영구히 바꾸는 셈입니다. 그런 거래는 의식적으로 이루어지는 일이 드물고, 보통 포럼 글을 따라 하다가 벌어집니다. 대신 프로필을 다시 보내거나 서버 쪽에서 확장 프로그램을 승인하는 것만큼 단순할 수 있는, 관리자에게 지원되는 경로를 물으세요. 관리자가 승인할 수 없다면 그 답이 발견인 것이지, 우회할 장애물이 아닙니다.

승인 후 상태를 확인하세요

권한 있는 승인이 주어지면 클라이언트의 주장이 아니라 시스템이 무엇이라고 생각하는지 확인하세요. 확장 프로그램 목록은 서드파티 도구 없이도 활성화 상태를 알려 줍니다.

systemextensionsctl list

활성으로 표시된 항목은 앞서 확인한 팀 식별자에 속하며, 사용자 승인을 기다리며 중지됨으로 표시된 항목은 시작은 하지만 트래픽을 전혀 운반하지 않는 클라이언트를 설명합니다. 시도할 때마다 프롬프트가 돌아오는 것은 보통 이전 확장 프로그램을 비활성화하지 않은 채 교체되고 있다는 뜻이며 암호 문제가 아니라 지원 사례이므로, 정확한 메시지와 클라이언트 버전을 기록하세요. 수정이 더 새로운 빌드에 이미 있을 수 있고 대화는 거기서 시작되므로, 지원에 연락하기 전에 버전을 적어 두세요.

관련 글