이동철입니다.

오래 간만에 포스팅을 하게 되네요,,, 최근에  회사 내부 교육에 고객사 세미나에 기타 등등 일이 좀 생겨서 포스팅하기가 여의치 않았습니다. 이젠 완전 여름에 다가왔죠,,, 예전 젊었을 때는 여름이 좋았는데,,, 이제 나이가 드니 땀 흘리고 기력딸려서 여름이 싫어지네요^-^

오늘 포스팅 주제는 "Enterprise 보안 강화를 위한 NAP(Network Access Protection)-IPsec 구현"에 관한 내용입니다.

최근, 우리나라의 금융권 회사 중에서 2개 회사나 해킹에 의한 전산 마비로 큰 화제가 되었습니다. 이러한 분위기 때문인지, 저희 부서의 고객들이 보안 강화를 위한 여러 가지 방안에 대해서 문의 및 기술 지원을 요청하고 있는 실정입니다.

이에, 보안 강화를 위한 하나의 방안으로써 "네트워크 접근 제어" 기능을 여러분에게 소개하고자 합니다.

"네트워크 접근 제어" 라는 개념은 이미 네트워크 어플라이언스 제품들에서 많이 소개가 되었습니다. 즉, IT 관리자가 정한 특정 규칙에 부합하는 클라이언트들만이 특정 서버 및  특정 네트워크에 연결 가능하도록 하는 기능이 바로 "네트워크 접급 제어"입니다.

이러한 통상적인 "네트워크 접근 제어" 개념을 Microsoft에서는 Windows Server 2008 부터 "NAP(Network Access Protection)" 이라는 서비스로써 제공합니다. 특히 NAP 클라이언트의 보안 compliance를 강조하여, IT 관리자가 지정한 Enterprise 보안 규정에 부합하는 NAP 클라이언트만 서버 및 네트워크 접근이 가능합니다. 대표적인  보안 compliance 는 "개인 방화벽 활성화 , 바이러스 백신 프로그램 설치 및 최신 패턴 업데이트 , Malware 백신 프로그램 설치 및 최신 패턴 업데이트" 등등이 있습니다. 즉, 이러한 보안 compliance를 준수하는 클라이언트들은 NAP 상에서 "Health" 한 상황으로 판단하고, 이러한 클라이언트들만이 자유롭게 Enterprise 서버 및 네트워크를 사용할 수 있도록 합니다.

NAP 을 구축하기 위한 기본적인 구성요소는 아래와 같습니다.

  • NAP 상태 정책 서버 : Windows Server 2008 Network Policy Server
  • NAP Enforcement 서버 : IPsec , 802.1x , RRAS , DHCP , TSG(Terminal Service Gateway)
  • NAP 클라이언트 : Window XP SP3 , Vista , Windows 7

위 그림은 NAP 을 구축하기 위한 기본적인 환경 구성도입니다. 앞서 언급한 "보안 Compliance"을 규정하는 정책 서버는 "Window Server 2008" 의 "Network Policy Server" 가 역할을 수행합니다. 이러한 NAP 정책 서버에서 정한 보안 Compliance를 준수하는 클라이언트가 접근할 수 있는 NAP Enforcement 서버는 현재는 위에서 언급한 총 5가지 정도의 Microsoft Server 서비스가 존재합니다. 다른 서버 제품들이 NAP Enforcement 서버 역할을 수행하고자 한다면, NAP Server SDK를 사용하여 타사의 서버 제품을 수정하면 됩니다. 예를 들어, SAP 서버나 Oracle 서버도 NAP SDK를 사용하여 개발된다면, NAP Enforcement 서버 역할을 수행할 수 있습니다. 즉, SAP 서버나 Oracle 서버를 접근하고자 하는 Windows 클라이언트들이 보안 compliance를 준수하지 않는다면, SAP 서버나 Oracle 서버를 접근할 수 없도록 강제할 수 있습니다.

본 문서는 NAP Enforcement 서버 중에서 "IPsec"을 대상으로 만들어 보았습니다.

기본적인 서버 환경 및 데모 환경은 아래와 같습니다.

위 그림을 살펴보면, "Secure Zone" 및 "Boundary Zone" 이라는 구분이 있습니다. 이러한 zone은 물리적인 네트워크 영역을 의미하는 것이 아닙니다. 즉, “Secure Zone” 이라 함은 NAP 클라이언트가 IPsec 으로 통신할 수 있는 컴퓨터들이 모여있는 논리적인 영역을 의미합니다. NAP 클라이언트들은 “상태 인증서(Health Certificate)”를 소유하고 있어야 “Secure Zone”에 포함될 수 있습니다. 또한, NAP 클라이언트들이 IPsec으로 통신해야 하는 서버들(ex, Windows Server 2008)은 자신의 “컴퓨터 인증서”를 소유하고 있어야 “Secure Zone”에 포함될 수 있습니다.

즉, NAP Enforcement 서버로써 "IPsec"을 구현하였는데, 기본적인 "IPsec"은 통신 상의 양 끝점(ex, 컴퓨터)의 identity를 확인해야 하는데, identity 확인 방법 중의 하나가 바로 "인증서" 방식입니다. NAP-IPsec 구현에서의 핵심 요소는 바로 NAP 클라이언트들의 "상태 인증서(Health Certificate)" 입니다. NAP 클라이언트들의 보안 Compliance가 "NAP 정책 서버 (NPS)" 의 기준에 맞는다면, NAP 클라이언트들에게 "상태 인증서"가 자동 발급되고, "NAP 정책 서버 (NPS)" 의 기준에 맞지 않는다면, NAP 클라이언트들의 "상태 인증서"를 자동으로 제거할 수 있습니다. 이러한 "상태 인증서" 발급 및 회수의 핵심 역할은 바로 "Health Registration Authority" 가 담당합니다.

NAP-IPsec 구현이 된다면, 보안 compliance 규정에 맞는 컴퓨터들만이 Enterprise 서버 및 네트워크에 접근할 수 있기 때문에, 보안 사고에 대한 사전적인 예방이 가능합니다. 이것만으로 모든 보안 고민 사항이 해결되는 것은 아니지만, 여러분의 보안 강화에 대한 고민을 조금은 덜어 드릴 수 있는 기반이 될 것으로 생각됩니다.

이상과 같이 NAP-IPsec의 구현 및 구성을 위한 기본적인 개념을 간단히 살펴 보았습니다.

여러분 다음 포스팅 까지 건강하세요