비밀번호는 맞고 계정은 VPN 그룹에 있는데도 연결은 어떤 정책도 언급하지 않는 메시지와 함께 거부된다. Windows 원격 액세스 서버에서 이런 일이 생기면 내가 가장 먼저 보는 것은 NPS 규칙이 아니라 아무도 열지 않는 Active Directory 특성 하나다: msNPAllowDialin, 즉 Dial-in 탭 뒤에 있는 값이다. 이 특성에는 세 가지 상태가 있고, 세 번째는 조용히 결정을 다른 곳으로 넘긴다. 대부분 아무도 의도적으로 바꾸지 않았다. 계정이 템플릿에서 복제되었거나, 몇 년 전에 명시적 거부를 기록한 스크립트로 만들어졌고 이후 다시 검토되지 않은 것이다.

정책을 읽기도 전에 거부가 일어날 수 있다

Windows는 권한 부여 결정을 만드는 동안 계정의 다이얼인 허가를 확인하므로, 명시적 거부는 대화를 일찍 끝낸다. 클라이언트에서 보이는 것은 일반적인 인증 실패이며, 때로는 인증서 교환이 끝난 뒤에 나타나고, 그래서 사람들은 문제가 아니었던 자격 증명을 테스트하느라 오후를 보낸다.

반대 경우도 마찬가지로 혼란스럽다. 플래그가 한 번도 설정되지 않은 계정은 정책이 허용했기 때문에 성공적으로 연결될 수 있고, 이후 누군가 무관한 이유로 NPS 규칙을 편집하면 같은 계정이 연결을 멈춘다. 두 사건 모두 밖에서 보기에는 다이얼인 허가 변경처럼 보이지 않는다.

세 가지 상태, 그리고 세 번째는 보이지 않는다

TRUE 다이얼인을 허용하고, FALSE 이를 거부하며, NULL 값은 계정이 원격 액세스 정책이나 NPS 권한 부여에서 답을 상속한다는 뜻이다. GUI는 그 세 번째 상태를 "Control access through NPS Network Policy"로 표시하며, 결정이라기보다 선택되지 않은 확인란처럼 읽힌다.

그래서 콘솔에서 허용된 사용자를 세는 것은 거의 아무것도 알려주지 않는다. 상속된 계정은 계정을 건드리지 않고도 오늘 허용되고 내일 거부될 수 있으며, FALSE 계정은 사용자 다이얼인 속성을 무시하도록 정책이 설정된 서버에서도 여전히 연결될 수 있다. 특성과 정책을 함께 읽어야 하며, 그렇지 않으면 결정의 절반만 감사하는 셈이다.

상속된 계정을 잃지 않고 플래그를 내보내기

내보내기는 도메인 컨트롤러에서, 또는 Active Directory 모듈이 있는 워크스테이션에서 실행하고, 요약을 다시 타이핑하는 대신 원본 파일을 증거로 보관하십시오:

Get-ADUser -Filter * -Properties msNPAllowDialin, LastLogonDate |
  Select-Object SamAccountName, Enabled, msNPAllowDialin, LastLogonDate |
  Sort-Object SamAccountName |
  Export-Csv -NoTypeInformation .\dialin.csv

LDAP 필터 하나가 변경 기록에 붙여 넣기 더 쉽다. 이것은 명시적 허용만 반환한다:

dsquery * -Filter "(&(objectCategory=person)(objectClass=user)(msNPAllowDialin=TRUE))" -Attr sAMAccountName

그다음 다이얼인 절 없이 다시 쿼리하고 값이 없는 계정을 찾으십시오. 그것이 상속된 계정이며 보통 도메인에서 가장 큰 그룹이고, 이를 건너뛰면 감사는 누군가 수동으로 설정했던 몇 사람의 목록으로 바뀐다.

플래그를 그룹 액세스와 계정 상태에서 분리하십시오

이 특성은 한 가지 질문에 답한다. 이 계정이 다이얼인할 수 있는가. 그 사람이 아직 여기서 일하는지, 계정이 활성화되어 있는지, 헬프데스크 메모에 공유 비밀번호가 남아 있는지는 말하지 않는다. 내보내기를 활성화 상태, 마지막 로그온 날짜, 서버 접근을 부여하는 그룹 구성원 자격과 함께 묶으십시오.

조치의 근거가 되는 것은 조합이다. 비활성화된 계정에 TRUE 이 있는 것은 소음일 뿐이다. 활성화된 계정에 TRUE 이 있고 일 년 동안 로그온하지 않았다면 제거 후보다. VPN 그룹의 상속된 계정 중 아무도 설명할 수 없는 것이 바로 중요한 발견이다. 왜 부여되었는지 기록하는 단일 설정은 없기 때문이다.

VPN 서버가 실제로 인증하는 도메인 컨트롤러에서 읽으십시오. 복제 지연은 서버가 이미 교체한 값을 보여 줄 수 있고, 오래된 DC 값을 인용한 감사는 누군가 다시 확인하는 순간 이의를 제기받는다.

계정 하나를 변경하고 변경이 반영되었음을 증명하십시오

액세스를 제거하려면 특성을 FALSE 로 설정하십시오. 지우는 대신에. 지우면 계정이 정책 상속으로 돌아가 다음 연결에서 다시 허용될 수 있고, 그 변경은 수정처럼 보이지만 실제로는 다른 결정이다:

dsmod user "CN=Jane Doe,OU=Staff,DC=corp,DC=example" -allowDialin no
Set-ADUser -Identity jdoe -Clear msNPAllowDialin

두 번째 줄은 상속 재설정이며, 두 작업을 혼동하지 않도록 의도적으로 분리해 두었다. 그다음 두 번째 세션에서 확인하고, 특성을 다시 읽고, 콘솔 새로 고침을 믿는 대신 거부에 대한 NPS 회계 이벤트를 확인하십시오.

마지막으로 각 원격 액세스 서비스에 대해 어떤 메커니즘이 결정을 소유하는지 적으십시오. 정책이 사용자 다이얼인 속성을 무시한다면 그룹 조건이 권위이고 특성은 그 서비스에 대해서만 참고용이다. 같은 도메인의 두 서비스가 정당하게 다르게 답할 수 있으며, 검토 기록은 서비스마다 한 줄로 그렇게 밝혀야 한다.

감사를 견디는 산출물은 짧다. 누가 연결할 수 있는지, 어떤 메커니즘으로, 언제 검토되었는지, 누구에 의해. 다이얼인 플래그가 처음 두 답을 제공하고, 나머지는 정책 검토만이 제공한다.

관련 글