안녕하세요…. 이동철입니다.

4월 초인데 날씨가 오락가락 하네요,, 잠시 화창한 봄 날씨가 같더니,, 갑자기 비바람이 몰아치고, 누구의 마음같네요 ^-^

이 글을 쓰는 시점이 4월 초인데,, 지난 3월 말에 대한민국을 강타했던 대형 보안 사고가 터졌던 사실을 여러분들도 모두 아실 겁니다. 뭐 늘 보안을 강조하고 나름대로 기업에서 보안을 강화하고 있지만, 늘 부족한 것이 현실이지요,, 그래서 제가 이런 보안 강화를 위한 이번 블로그를 포스팅하고 있지만, 실제 보안 사고는 늘 주변에서 도사리고 있습니다. 그래도, 기업 IT 관리자 및 보안 관리자 입장에서는 보안을 최대한 신경 써야 하는 점이 숙명입니다.

이번 보안 사고를 보면서, Windows Vista 以後의 운영체제를 사용하고 있는 고객이라면, 기본적으로 제공되는 “고급 보안이 포함된 Windows 방화벽(Windows Firewall with Advanced Security)” 도구를 사용했으면, 그나마 외부 허가되지 않고 인증되지 않은 컴퓨터들부터 내부 컴퓨터를 보호할 수 있을 것으로 생각됩니다. 물론, 내부 컴퓨터에 연결된 이동 저장 장치를 통한 바이러스 침투는 “고급 보안이 포함된 Windows 방화벽”이 막을 수 없고, 이러한 침투 경로는 PC 바이러스 제품으로 보호해야 할 것입니다. 다만, “고급 보안이 포함된 Windows 방화벽” 기능을 사용하면, 외부의 허가되지 않고, 인증되지 않은 컴퓨터로부터 내부 컴퓨터로의 네트워크 연결을 事前에 차단할 수 있습니다. 다만, 이러한 내부 컴퓨터라는 정의는 기본적으로 Active Directory 내의 죠인된 클라이언트 및 서버 컴퓨터라는 제약 사항이 있습니다. Active Directory 내의 죠인된 멤버 컴퓨터들 사이에서 IPsec 통신을 사용하여 안전한 네트워크를 수행하는 기법을 “Domain Isolation” 이라고 합니다. 즉, Active Directory 내의 컴퓨터가 아닌 외부 컴퓨터들이 죠인된 멤버 컴퓨터들과 물리적으로 동일한 네트워크 대역에 연결되었을 경우에도, 실제 죠인된 멤버 컴퓨터들과 IP 수준의 네트워크 통신을 수행할 수 없습니다. 이러한 Domain Isolation 기법을 사용하면, 허가되지 않고 인증되지 않은 외부 컴퓨터들이 내부 컴퓨터들에 연결할 수 없어, 일차적으로 보안을 강화할 수 있습니다. 이미 아래 링크의 블로그에서 IPsec Service 및 Agent를 사용한 Domain Isolation 및 Server Isolation을 구현하는 방법을 설명해 드렸습니다.

그러나, 위 링크의 IPsec Service 및 Agent를 사용하여 Domain Isolation 및 Server Isolation을 구현하는 방법은 굉장히 복잡하고 어려운 작업입니다.

이러한 IPsec을 통한 Domain Isolation 및 Server Isolation을 구현하는 방법의 단점을 해결한 기능이 바로 “고급 보안이 포함된 Windows 방화벽”입니다. 고급 보안이 포함된 Windows 방화벽은 호스트-기반 방화벽과 IPsec 구현이 결합된 신규 기능입니다. 또한, 고급 보안이 포함된 Windows 방화벽은 IPsec 기반의 연결 보안 규칙을 생성할 수 있는 신규 기능도 제공합니다. IPsec 기반의 연결 보안 규칙은 컴퓨터 인증, 데이터 무결 및 데이터 기밀과 같은 중요 보안 기능을 제공합니다. 즉, “고급 보안이 포함된 Windows 방화벽”은 IPsec과 호스트-기반 방화벽이 결합된 기능이므로, 이제 더 이상 IPsec을 구현하기 위하여 복잡한 그룹 정책이 아니라, “고급 보안이 포함된 Windows 방화벽” 기반의 단순한 그룹 정책을 사용하여 손 쉽게 IPsec 통신을 구현할 수 있습니다. 특히, “고급 보안이 포함된 Windows 방화벽”은 Active Directory내에서 그룹 정책을 통하여 중앙에서 제어가 가능하므로, 로컬 컴퓨터 관리자의 방화벽 규칙 변경도 제어할 수 있는 장점이 있습니다. “고급 보안이 포함된 Windows 방화벽”의 여러 가지 기능 중에서, 본 블로그의 첨부 문서에 다룬 내용은 아래와 같습니다.

  • 기본 인바운드 및 아웃바운드 방화벽 규칙을 설정하기 위하여 고급 보안이 포함된 Windows 방화벽을 사용합니다. 아래 그림은, TCP 포트 23에만 인바운드 네트워크 트래픽이 허용되도록 제한하는 Telnet 예외 규칙을 생성하는 개략적인 구성도입니다.
  • 도메인 내의 모든 컴퓨터에 방화벽 설정을 구성하기 위하여 그룹 정책 개체을 생성하였고, 사용자 계정들이 이러한 도메인 수준의 방화벽 설정을 override 할 수 없음을 확인했습니다. 아래 그림은 그룹 정책에서 도메인 프로필 속성에서 로컬 컴퓨터에서 방화벽 생성을 금지하는 설정입니다.
  • 도메인 멤버가 아닌 컴퓨터들이 도메인 멤버 컴퓨터들에 접근하지 못 하도록 제한하는 기본 Domain Isolation 규칙 집합을 생성했습니다. 아래 그림은 도메인 멤버 서버 및 클라이언트 컴퓨터들이 인증되고 허가된 IPsec 터널을 통해 안전하게 Telnet 통신을 하는 예제입니다.
  • 승인된 그룹의 구성원인 도메인 컴퓨터들만이 민감한 정보를 소유한 서버에 접근할 수 있도록 연결 보안 규칙을 생성했습니다. 이러한 연결 보안 규칙은 Server Isolation을 구성하는 주요 방법입니다. 아래 그림은 특정 그룹의 구성원인 도메인 사용자만이 특정 서버에 연결할 수 있는 Server Isolation을 구현한 예제입니다. 즉, CORP\User1 사용자만이 WFASSVR1 서버의 Telnet에 IPsec 터널을 통해 안전하게 Telnet 통신을 연결할 수 있습니다.

  • 특정 신뢰된 컴퓨터들이 도메인 수준의 차단 방화벽 규칙을 무시하도록 “차단 규칙 무시” 설정을 포함한 방화벽 규칙을 생성했습니다. 즉, “차단 규칙 무시” 설정을 포함한 방화벽 허용 규칙은 동일 트래픽에 대해서 차단 규칙에 우선하여 허용 규칙이 적용됩니다. 아래 그림은 Telnet 차단 규칙을 우선하여 Telnet 허용 규칙이 적용되는 예제입니다. 아래 그림 중앙 하단 부분에 “차단 규칙 무시”라는 설정을 확인할 수 있습니다. 즉, Telnet 허용 규칙의 속성에서 동일 트래픽의 차단 규칙을 무시하는 설정을 수행함으로써, Telnet 차단 규칙을 무시하고, Telnet 허용 규칙이 우선 적용됩니다.
  • 마지막으로, IPsec 터널 모드를 구성하여, 공용 네트워크 상의 클라이언트가 내부 네트워크에 IPsec 터널을 통해 안전하게 접근할 수 있는 방법을 확인합니다. 공용 네트워크 대역에 존재하는 CLIENT1W8(131.107.0.201)에서, 특정 네트워크 주소(10.0.0.x 사설 네트워크 대역)를 목적지로 하는 네트워크 트래픽은 IPsec을 통해 보호되고, 이 IPsec 트래픽은 기본 게이트 서버(131.107.0.200 : WFASSVR1 서버의 공용 네트워크 어댑터 주소)로 라우팅됩니다. 라우팅된 IPsec 네트워크 트래픽은 해독되어 plaintext 트래픽 상태로 목적지 서버(10.0.0.1 : DC1)에 전송됩니다.

이상과 같이 본 가이드의 대표적인 내용을 개략적으로 소개해 드렸습니다. 본 가이드에서는 위 대표적인 내용이외에도 다양한 시나리오에 기반한 구현 방법을 소개해 드렸습니다. 이러한 시나리오를 여러분들의 사정에 맞게 좀 더 수정하여 사용하신다면, 훌륭한 보안 강화 방안이 될 것으로 생각됩니다.

여러분들 오늘 블로그는 내용이 좀 길었네요..

다음 번 포스팅까지 모두들 건강하게 잘 지내세요