작업 그룹(Workgroup) 사용자는 NAP을 사용할 수 없나요?

"NAP을 사용하려고 하면 AD가 필수적인가요?"

"NAP에서 사용자별로 제어를 하고 싶은데.. 어떻게 하나요?"

많은 세미나와 행사에서 질문받은 내용중 가장 으뜸은 바로 NAP과 액티브 디렉터리의 관계입니다. 대부분의 Microsoft 기술이 액티브 디렉터리 기반에서 동작하기 때문에, 이러한 질문이 들어오는 것 같습니다.

액티브 디렉터리가 NAP에 필요하다면...

1. 모든 클라이언트를 액티브 디렉터리 도메인에 가입해야 함..
2. NAP이 사용자 인증을 사용한다는 가정?
3. 사내에 방문하는 모든 사용자들에 대해 NAP의 보호 아래 두려면 다 액티브 디렉터리에 가입?!

정말 액티브 디렉터리가 NAP을 사용하는데 필수적일까요?

정답은 아니다. 입니다. 정말 아니라고 할 수 있습니다. 물론 액티브 디렉터리가 있다면, 더욱 나아진 가치를 얻으실 수 있지만, 액티브 디렉터리가 NAP의 필수 조건은 아니라는 것입니다.

image

NAP 클라이언트가 자신의 상태 정보(Statement of Health - SoH)를 네트워크 액세스 장치에 전달합니다. 네트워크 액세스 장치에는 DHCP 서버, VPN 서버, 802.1x 장비, HRA 서버, TSG등이 있죠. SoH를 전달할 때, 중요한 것은 인증을 별도로 하지 않는다는 것입니다. 물론! HRA가 IIS 7.0 기반이기 때문에, IIS에 접속할 때 인증을 해야하지 않겠느냐라고 하시겠지만, IIS에는 익명인증이 있고, HRA를 설치할 때 별도로 묻는 것이 바로 익명의 인증을 따로 처리해줄 것이냐입니다. 이때 익명을 사용하겠다고 하면, IPSEC 시나리오의 경우에도 비 도메인 사용자에 대해서도 처리가 가능합니다.

image

그럼 이제, 이런 질문을 하시죠. HRA에 대한 주소 정보를 어떻게 알 수 있느냐... 그룹 정책이 안되는 일반 작업 그룹 클라이언트들에 대해 일일히 전부 HRA 주소를 넣어줘야 하는 것 아니냐? 네 맞습니다. NAP 클라이언트 관리 도구내 HRA에 대한 정보를 입력해줘야 합니다만, 그렇게 비 효율적인 설정을 만들어놓진 않았습니다. :)

image

작업 그룹의 사용자들은 DNS의 SRV 레코드를 통해 HRA를 찾을 수 있습니다. DNS에 대한 정보에 약속된 Suffix를 기반으로 쿼리를 날리므로, 당연히 별도의 설정없이도 HRA가 누군지 알아낼 수 있습니다.

DHCP의 경우에는 브로드캐스트를 통해 DHCP를 찾아내고, 다만 NAP을 사용하는 경우에 DHCP 요청 패킷내 SoH를 같이 보내주게 되므로, 역시나 인증을 하지 않는 것이 기본입니다. VPN 서버도 PEAP-TLV를 통해 SoH를 전달합니다. VPN 서버에 최초 접근시에만 인증을 하게 되는 VPN 클라이언트의 역할만 하게 되고, 당연히 NAP에서는 별도의 인증을 요청하지 않습니다. 802.1x도 NAP에 대한 것은 인증이 없고, 최초의 포트 오픈시 인증만 처리합니다. 이역시도 NAP과는 무관한 작업입니다.

image 

NAP의 기본 설정값입니다. 단지 하나.. 클라이언트의 SoH 상태만 볼뿐, 어떤 사용자 계정인지에 대해서는 체크하지 않습니다. 이쯤되면.. 그럼 보안상 너무 한거 아니냐라는 역질문을 하실 수도 있습니다. 아래의 그림에서 볼 수 있는 것처럼, 조건문에 그룹에 대한 정보를 추가하시면, NAP 확인 + 그룹 확인이 되므로, 이경우엔 인증 정보가 추가로 요청되고, 넘어오게 됩니다. 따라서 NAP에서는 필요시 그룹별로 별도의 설정을 적용할 수 있습니다. 이 경우엔 당연히 사용자의 정보가 넘어가므로, 액티브 디렉터리에 가입되어서, 액티브 디렉터리 계정을 사용해야 합니다.

image

저번 세미나에서 한 분께서 이런질문을 하셨습니다. 그렇다면, 인증 필요시(위의 예제와 같이) 별도의 인증 확인 창이 나타나느냐.. 웹에서 인증받듯이 계정과 패스워드 요구창이 나타나느냐... 정답은 아닙니다. 안나타납니다. 그냥 익명으로 요청되게 되며.. 정책에 따라 이를 처리할 방향성이 만들어지게 됩니다. 아래의 예제가 바로 해당 예제죠. NAP 상태 정책과 Domain Users라는 체크를 할 경우엔, SoH와 더불어, 계정 정보가 넘어와야 합니다.

image

결국 외부에서 온 사람들에 대해서는 NAP에 대한 처리 정책을 만드셔야 합니다. NAP Non-Capable을 이용한 예외, 혹은 오랫동안 회사에 머물러야 할 경우 MAC을 통한 예외 처리(Calling Station ID)등이 필요하겠죠. NAP에 대해 방문자도 사용해야 한다고 한다면.. Netsh 스크립트 같은 걸로 만들어 놓으시면 편리합니다. 물론 Windows XP의 경우에는 별도의 NAP 에이전트를 설치해줘야 하죠.

image

image

NAP은 Microsoft만을 위한 인프라가 아닙니다. 이를 이용하는 Linux, MAC 등에 대한 NAP 에이전트를 외국의 파트너가 개발중에 있으며, 이를 통해 얼마든지 확장이 가능할 수 있습니다. 뿐만 아니라, 기본적인 처리가 인증에 대해서는 조건을 기본 요청하지 않으므로, 작업 그룹과 같은 비 액티브 디렉터리 환경에서도 NAP의 기능을 충분히 활용할 수 있습니다. 물론 액티브 디렉터리가 있다면, NAP 클라이언트 설정과 서비스 설정과 같은 많은 작업 부담이 있는 일을 빠르게 처리할 수 있겠죠.