Windows Server 2008에서 SCW 사용

2008. 4. 2. 15:48 IT 및 개발/Windows Server

안녕하세요!! 오늘도 어제에 이어서 Windows Server 2008 강좌입니다!! 이번 강좌는 TechNet Magazine 2008년 3월호에 실린 Windows Server 2008에서 SCW 사용이란 내용의 강좌입니다.

Windows Server 2008에서 SCW 사용
Jesper M. Johansson

이 문서는 Windows Server 2008 시험판 버전을 기준으로 작성되었습니다. 이 문서에 수록된 모든 정보는 변경될 수 있습니다.

2005년에 Microsoft에서는 Windows Server 2003 SP1을 발표했습니다. 이 서비스 팩에서는 최초의 Windows용 역할 기반 보안 관리 도구인 SCW(보안 구성 마법사)를 소개했습니다. Microsoft에서는 SCW를 최초이자 최고의 보안 취약점 감소 도구로 설계했습니다. 이 도구의 목적은 사용자가 컴퓨터를 통해 실제로 수행한 작업을 분석하여 필요한 해당 역할을 지원하도록 자동으로 컴퓨터를 구성할 뿐만 아니라 사용되지 않는 역할과 서비스는 비활성화하는 것입니다.

SCW는 Windows Server® 2008에서도 제공되지만 새 역할과 새로운 Windows® 방화벽과의 통합을 통해 업데이트되었습니다. 하지만 이전보다 더욱 향상된 고급 관리 기능을 제공합니다.

Windows Server 2008에는 새로운 역할 기반 서버 관리자 도구 및 이와 유사한 역할 추가 및 기능 추가 마법사가 포함되어 있습니다. Windows Server 2008에서는 이전 방식의 Windows 구성 요소 추가/제거 제어판을 통해 개별 구성 요소를 추가하는 대신 역할 관리 도구를 사용하여 서버를 구성합니다. Byron Hynes는 이번 호 TechNet Magazine의 기사 "서버 관리자를 사용하여 역할 구성"에서 이 도구에 대해 설명합니다.

역할 추가 및 기능 추가 마법사는 사용자가 선택한 역할을 지원할 수 있는 적합한 구성 요소로 서버를 구성하도록 설계되었습니다. 또한 이러한 역할이 올바르게 작동할 수 있도록 기본 제공 방화벽도 구성합니다. 그렇다면 SCW가 왜 여전히 필요한지에 대한 궁금증이 생길 수 있습니다. 사실 많은 수의 관리자에게 SCW는 더 이상 필요하지 않습니다. 하지만 SCW가 매우 유용한 도구가 될 수 있는 두 가지 사용자 그룹이 있습니다. 첫 번째 그룹은 보안에 매우 엄격한 사람들입니다. 이러한 사람들은 SCW가 보안을 한 차원 높은 수준으로 끌어올린다고 평가합니다.

역할 추가 및 기능 추가 마법사는 관리자가 원하는 역할과 기능을 안전하게 지원하도록 기본 서버를 구성하는 도구로 생각할 수 있습니다. 반면에 SCW는 관리자가 원하는 역할과 기능만 지원하도록 서버를 구성하는 도구입니다. 또한 SCW에는 서버가 구성되는 방식을 더 자세히 이해하도록 돕는 교육적 효과도 있습니다. 따라서 필자는 역할 및 기능을 통해 서버를 구성한 이후에 SCW를 실행할 것을 강력히 권장합니다.

두 번째 그룹은 다양한 구성 요소 간의 관계를 이해하고자 하는 사용자들입니다. SCW는 역할, 기능, 서비스 및 네트워크 포트 사이의 관계를 문서화하는 XML 파일 집합과 함께 제공됩니다. 다양한 구성 요소에 무엇이 필요한지 파악하는 데 관심이 있다면 SCW는 매우 유용한 도구입니다.

이 칼럼에서는 SCW가 작동하는 방식과 SCW를 사용하여 서버를 보호하는 방법을 설명합니다. 또한 SCW와 서버 관리자 도구를 비교합니다. 이 칼럼은 필자의 책 Windows Server 2008 Security Resource Kit(Microsoft Press®, 2008)를 각색한 것입니다.

보안 구성 마법사 개요
우선 Windows Server 2008의 보안 취약점에 대한 몇 가지 통계를 소개하겠습니다. 사용자가 선택한 역할과 기능을 추가하여 서버를 구성하기 전에도 상당히 많은 수의 서비스가 사용되고 있습니다. 기본적으로 Windows Server 2008에는 105개의 서비스가 있으며, 그 중 42개는 자동 시작으로, 55개는 수동 시작으로, 8개는 사용 안 함으로 설정되어 있습니다. 이와 반대로 Windows Server 2003 R2 SP2를 새로 설치하면 기본적으로 86개의 서비스가 설치되는데, 이 중에서 34개가 자동 시작, 32개가 요청 시 시작, 20개가 사용 안 함으로 설정됩니다.

역할 의미가 사용되고 지원되는 기본 역할의 수가 줄었지만 Windows Server 2008에는 여전히 많은 서비스가 사용되며 서버 보안을 강화하기 위한 추가적인 작업이 필요합니다. SCW는 특정 서버에 적합한 사용자 지정 보안 구성을 만드는 과정에 도움이 됩니다.

SCW는 서버 보안 강화를 위해 기존 도구와는 전혀 다른 방법을 사용합니다. 역할 의미를 사용하여 시스템이 해당 역할만 지원하고 다른 역할은 거의 지원하지 않도록 구성합니다. SCW는 역할 추가 및 기능 추가 마법사처럼 방화벽 구성을 지원하는 동시에 불필요한 서비스를 사용하지 않도록 설정하고 몇 가지 추가적인 보안 설정도 구성합니다. 마지막으로 역할 추가 및 기능 추가 마법사는 Windows에 기본으로 제공되는 역할만 설치하고 구성할 수 있는 반면에 SCW는 확장이 가능합니다. 개발자나 관리자는 사용자 지정 역할 또는 기능 구성 파일을 작성하고 SCW를 사용하여 모든 제품을 구성할 수 있습니다.

SCW는 서버에 필요한 모든 역할과 기능을 설치한 후에 사용하도록 설계되었습니다. 서버에 타사 응용 프로그램도 있는 경우에는 SCW를 실행하기 전에 해당 응용 프로그램도 설치해야 합니다.

필자는 작동 방식을 설명하기 위해 세 가지 역할(응용 프로그램 서버, DNS 서버 및 웹 서버)과 두 가지 기능(Microsoft® .NET Framework 3.0 기능 및 Windows Process Activation Service)으로 서버를 구성했습니다. 논리적인 역할 및 기능 집합은 아니지만 이 칼럼에서 설명하는 내용에는 적합한 예가 됩니다.

SCW를 시작하려면 관리 도구 메뉴에서 실행합니다. 그러면 그림 1과 같은 대화 상자가 표시됩니다.


그림 1 수행할 작업을 묻는 SCW

첫 번째 단계에서는 새 보안 정책을 만들 것인지, 기존 정책을 편집하거나 적용할 것인지, 정책을 롤백하여 시스템을 원래 설정으로 되돌릴 것인지 여부를 선택합니다. 각 항목은 비교적 쉽게 이해할 수 있습니다.

새 보안 정책 만들기를 선택하면 SCW는 일부 컴퓨터를 정책에서 지원해야 하는 항목에 대한 템플릿으로 사용하여 새 정책을 만듭니다. 컴퓨터를 분석하여 컴퓨터에서 지원하는 기능과 역할을 파악함으로써 해당 기능과 역할은 작동하도록 하고 불필요한 기능은 사용되지 않도록 합니다.

SCW는 프로토타입 모델에서 작동하며, XML 파일을 사용하여 설치된 파일, 구성된 서비스 등의 측면에서 역할과 기능의 형태를 지정합니다. 이러한 이유 때문에 정책을 적용할 대상 컴퓨터에는 모든 항목이 설치되어 있어야 합니다. 설치 시 SCW 정의를 설치하는 타사 프로그램이 있는 경우에는 문제 없이 통합됩니다. 하지만 SCW 정의를 설치하지 않는 타사 프로그램은 수동으로 구성해야 합니다.

여기서 볼 수 있듯이 한 시스템에서 정책을 만든 다음 이것을 여러 시스템에 적용할 수 있습니다. 여러 시스템이 있는 네트워크를 구축할 때는 모두 개별적으로 구성된 호스트 클래스를 먼저 정의해야 합니다. 그런 다음 이 중 하나를 프로토타입으로 사용하여 정책을 만들면 정책을 거의 또는 전혀 수정하지 않고 다른 컴퓨터에 쉽게 적용할 수 있습니다.

그림 1의 대화 상자에서 다음을 클릭하면 마법사에는 이 새 정책의 기준 또는 프로토타입으로 사용할 컴퓨터를 묻는 질문이 나타납니다. 대개의 경우 로컬 컴퓨터를 선택하지만 원격 컴퓨터를 프로토타입으로 사용할 수도 있습니다.

사용할 시스템을 지정한 후에는 분석 단계로 넘어갑니다. 이 단계에서 SCW는 설치된 역할과 기능을 열거하고 이를 역할 및 기능 데이터베이스에 일치시킵니다. 데이터베이스에는 각 역할과 기능에 사용되는 서비스에 대한 정보, 필요한 네트워크 포트 및 기타 중요한 구성 정보가 들어 있습니다. 분석이 끝나면 구성 데이터베이스 보기를 클릭하여 보안 구성 마법사에서 찾은 항목을 볼 수 있습니다. 이 보기는 컴퓨터의 구성에 대한 포괄적인 정보를 보여 주는 읽기 전용 보기입니다. 실제로 컴퓨터에 어떤 항목이 있는지 파악하는 데 관심이 있는 경우에는 이 정보를 면밀히 살펴보는 것이 도움이 될 수 있습니다.

SCW로 서버 구성
다음을 클릭하면 SCW의 네 개 섹션 중 첫 번째인 역할 단위 서비스 구성으로 넘어가게 됩니다. 그림 2에서처럼 SCW에서 찾는 역할은 역할 추가 마법사에서 찾는 역할과 같지 않을 수 있습니다. 역할 추가 마법사에서 사용 가능한 역할의 대부분이 여기에도 있지만 SCW는 역할 추가 마법사에는 없는 몇 가지 역할도 제공합니다. 예를 들어 여기에서 선택한 응용 프로그램 서버 역할은 존재하지 않습니다. SCW는 역할에 대해 약간 다른 의미를 사용하기 때문입니다. 이에 대해 좀 더 자세하게 설명하겠습니다.


그림 2 SCW를 사용하여 서버에서 지원할 역할 선택

이 대화 상자에 적절한 역할 집합이 이미 선택되어 있는 경우가 많습니다. 따라서 찾아야 할 것으로 생각한 항목이 분석을 통해 검색되었는지 여부만 확인하십시오. 잘못된 것이 있다면 역할이 설치되었는지 확인하고 누락된 역할을 설치한 후 SCW를 다시 실행하십시오. 실수를 한 경우에도 걱정할 필요는 없습니다. SCW에는 롤백 기능이 있기 때문에 정책으로 인한 모든 변경 사항을 실행 취소하여 처음으로 돌아갈 수 있습니다.

이 섹션에서 선택하는 답변은 네트워크 섹션에 표시될 항목을 결정하기 때문에 매우 중요합니다. 다행이 검색 논리가 상당히 훌륭하여 대개의 경우 올바른 역할 집합이 선택됩니다.

또한 기본적으로 디스크에 저장된 데이터로 서버에서 지원할 수 있는 역할인 설치된 역할이 표시됩니다. 선택된 역할은 현재 지원되는 역할입니다. 데이터베이스의 모든 역할을 표시하도록 선택할 수도 있습니다. 이렇게 하려면 드롭다운 목록에서 모든 역할을 선택합니다. 이는 필요한 모든 역할이 아직 설치되지 않은 프로토타입 서버를 사용하여 정책을 만들어야 할 때 유용합니다.

역할을 구성한 후에는 지원할 클라이언트 기능을 선택합니다. 기능 집합은 기능 추가 마법사의 기능 집합과 비슷하지만 동일하지는 않으며 포함된 기능이 더 적습니다. 마찬가지로 의미가 정확하게 동일하지 않고 SCW는 확장이 가능하기 때문에 표시되는 내용은 기능 추가 마법사와는 다릅니다.

SCW의 클라이언트 기능 페이지에서 다음을 클릭하면 그림 3과 같은 관리 및 기타 옵션 선택 대화 상자가 열립니다. SCW의 옵션은 역할이나 기능에 적합하지 않은 옵션입니다. SCW의 옵션은 관리 지원을 제공하거나 대화형 서비스 감지와 같은 단일 서비스일 수 있습니다. 필요한 옵션의 대부분을 여기에서 선택해야 합니다. 드롭다운 메뉴도 살펴볼 필요가 있습니다. 여기에는 앞서 선택한 역할 및 기능에 관련된 옵션이 들어 있으며 컴퓨터마다 다릅니다.


그림 3 SCW에서 다른 서비스 및 기능 선택

다음으로는 추가 서비스 선택 대화 상자가 열립니다. SCW에는 매우 큰 서비스 데이터베이스가 함께 제공되지만 여기에서 모두 설명하지는 않습니다. 데이터베이스에 없는 서비스를 SCW가 컴퓨터에서 찾는 경우 해당 서비스는 추가 서비스 페이지에 표시됩니다. 모든 기본 제공 서비스에 대한 설명이 제공되며 타사 서비스를 설치한 경우가 아니면 이 대화 상자는 나타나지 않습니다.

마법사를 사용하면 현재 구성하지 않은 서비스에 대해 수행할 작업을 선택할 수 있습니다. 이 옵션은 현재 작성 중인 정책을 다른 컴퓨터에 적용할 때 사용하기 위한 것입니다. 사용자가 정책을 만든 서비스와는 다른 서비스가 해당 컴퓨터에 있을 경우 SCW는 이를 어떻게 처리할지 알아야 합니다. 이에 대한 한 가지 방법은 그대로 두는 것입니다. 이것이 기본값입니다. 다른 한 방법은 사용하지 않도록 설정하는 것인데, 이것은 더 안전하지만 문제를 일으킬 수 있습니다. 그러나 정책을 만든 서버와 동일한 서버에만 정책을 적용하는 방법을 따르는 경우 이 페이지에서 선택하는 항목은 문제가 되지 않습니다.

이제 SCW의 역할 구성 부분을 마쳤으며 마법사에는 지금까지의 작업 요약이 표시됩니다. 그림 4에서 볼 수 있듯이 계속 다음만 클릭하더라도 컴퓨터의 보안 취약점에 큰 영향을 미칩니다. 예를 들어 이 컴퓨터는 인쇄 서버가 아니며 프린터가 설치되어 있지 않기 때문에 인쇄 스풀러 서비스를 실행할 이유가 없습니다. SCW는 필요 없는 모든 서비스를 사용하지 않도록 설정합니다. 테스트 서버에서 SCW는 자동 시작으로 설정되었던 서비스 17개를 사용 안 함으로 설정하고 42개의 수동 시작 서비스를 사용하지 않도록 설정했습니다. 물론 사용자 서버가 구성된 방식에 따라 결과는 달라질 수 있지만 SCW를 사용하면 손쉽게 각 서버에 맞게 정책을 사용자 지정할 수 있으므로 보안 취약점을 상당히 줄일 수 있다는 점을 알 수 있습니다.


그림 4 변경한 내용이 요약된 SCW

이제 SCW에서 가장 중요한 부분이라고 할 수 있는 네트워킹 섹션으로 이동합니다. 처음 시작 페이지가 나타난 후 그림 5와 같은 네트워크 보안 규칙 대화 상자가 표시됩니다. 여기에는 이전 섹션에서 사용자가 선택한 역할 지원을 기반으로 하여 SCW가 제안하는 모든 방화벽 규칙이 나열됩니다.


그림 5 사용자에게 필요한 모든 규칙을 나열하는 SCW

사용자가 네트워크 섹션에서 추가적인 구성을 설정하지 않으면 SCW는 이러한 역할과 기능만 지원되는 동시에 이에 대한 모든 클라이언트 액세스는 허용되도록 네트워크 인터페이스를 잠그는 방화벽 규칙을 생성합니다. 그러나 서버의 보안을 실제로 최적화하려면 서버 격리 전략 구축에 있어 가장 중요한 부분으로 SCW를 사용해야 합니다. 서버 격리 및 이와 깊게 연관된 도메인 격리에 대한 자세한 내용은 technet.microsoft.com/network/bb545651을 참조하십시오.

Windows Server 2008 Security Resource Kit에는 서버 및 도메인 격리를 통한 네트워크 보안에 대한 내용이 있습니다. 이 책에서는 또한 간편하게 서버 격리를 배포할 수 있도록 네트워크 위협 모델링을 사용하여 네트워크를 분석하는 방법도 설명합니다. 이 프로세스에서 SCW는 매우 유용한 도구입니다.

규칙을 선택하고 편집을 클릭하면 제안된 규칙에 대한 제한 사항을 구성할 수 있습니다. 이렇게 하면 그림 6과 같은 대화 상자가 열립니다. 이 그림은 네트워킹 규칙에 제한 사항을 추가할 수 있는 네 개의 페이지 중 한 페이지입니다. 예를 들어 IPsec 인증을 요구할 수 있습니다. 이 옵션을 선택하면 포트를 특정 끝점에만 연결할 수도 있습니다. 예를 들어 특정 호스트로부터의 원격 관리만 허용되도록 구성할 수 있습니다. 이 기능은 역할 추가 및 기능 추가 마법사에 비해 크게 향상된 것입니다.


그림 6 방화벽 및 IPsec 규칙을 작성할 수 있는 SCW

선택한 역할에 따라 연결 보안 규칙을 작성할 수 있는 이 기능에는 두 가지 중요한 목적이 있습니다. 첫째, 서버에서 수행되고 있는 작업을 파악할 수 있는 소중한 학습 기회를 제공합니다. 즉, 서버를 구축할 필요도 없습니다. 마법사를 실행하고 몇 가지 항목을 선택한 후 다음 페이지의 옵션에 어떤 영향이 있는지 살펴보기만 하면 됩니다. 둘째, 매우 추상적인 포트 개념을 더 논리적인 서비스 개념에 연결하고, 정확히 시스템에서 수행되고 있는 실제 작업을 기반으로 네트워크 제한 사항을 구성할 수 있습니다.

올바르게 설정하기만 하면 서버에 대한 매우 엄격한 구성을 만들 수 있습니다. SCW의 네트워킹 섹션은 서버의 보안 정책을 만드는 과정에서 대부분의 시간의 투입해야 하는 매우 중요한 부분입니다.
SCW의 나머지 부분에서는 감사 및 몇 가지 레지스트리 설정을 구성할 수 있습니다. 이러한 매개 변수의 기본 설정은 대부분의 조직에 적합하며, 특별한 요구 사항이 없다면 그다지 변경할 필요가 없습니다.

정책을 만든 후에는 정책을 저장하고 현재 작업 중인 컴퓨터에 적용하거나 다른 컴퓨터에 적용할 수도 있습니다. 또한 scwcmd.exe /transform 명령을 사용하여 정책을 GPO(그룹 정책 개체)로 변환할 수도 있습니다.

하지만 정책에 특정 컴퓨터에 관련된 설정이 있을 때는 정책이 성공하지 못하거나 의도하지 않은 결과가 나타날 수 있습니다. 예를 들어 네트워킹 섹션에서 로컬 어댑터를 포함하는 끝점 제한 사항을 만든 경우 해당 정책은 특정 컴퓨터 관련 정책으로 간주되며 성공적으로 변환되지 않습니다. 그 이유는 GUID를 사용하여 해당 어댑터를 지정해야 한다는 점 때문입니다. 한 컴퓨터의 어댑터에 대한 GUID는 다른 컴퓨터에서는 의미가 없습니다.

따라서 SCW는 서버 단위로 사용할 때와 학습 도구로 사용할 때 더 유용한 경우가 많습니다. 대규모 서버 팜에서는 컴퓨터 정보를 파악하고 기본 정책을 개발하는 하나의 방법으로 SCW를 사용할 수 있습니다. 그런 다음 해당 정책을 기반으로 정책을 다시 만들어 그룹 정책이나 엔터프라이즈 관리 시스템(예: Microsoft Systems Center)과 같이 서버 구성 도구를 사용할 때 적용할 수 있습니다.

SCW와 서버 관리자
지금까지 살펴본 것은 역할과 기능에 사용되는 의미가 서로 다르다는 점입니다. SCW에서 "기능"은 컴퓨터가 클라이언트 역할을 하기 위해 수행하는 것입니다. 반면에 "역할"은 컴퓨터가 서버 역할을 하기 위해 수행하는 것입니다.

즉, 이러한 개념은 역할은 하나의 단위로 생각할 수 있는 서비스 및 기능의 모음이고 기능은 역할을 지원하는 것으로 간주되는 서버 관리자 도구에서의 의미와 다릅니다. 기본적으로 서버 관리자에서는 역할을 서버가 수행해야 하는 것으로 간주합니다. 기능은 중요하기는 하지만 이를 위해 서버가 존재하는 것은 아닙니다. 동일한 용어에 대해 두 가지 의미와 두 가지 서로 다른 용도로 인해 혼동이 유발됩니다. 도구를 전환할 때는 먼저 이에 대해 신중하게 생각해 보아야 합니다.

또한 서버 관리자 도구에는 확장성이 없습니다. 즉, Windows와 함께 제공되는 구성 요소만 관리하도록 설계되었습니다. 이와 반대로 사용자가 설치하는 타사 프로그램에서는 SCW에 역할과 기능을 추가할 수 있습니다. 역할과 기능을 직접 작성할 수도 있습니다. 자세한 내용을 보려면 "보안 구성 마법사 확장" 백서(go.microsoft.com/fwlink/?LinkId=107397)를 참조하십시오.

또한 SCW는 필요 없는 구성 요소를 사용 안 함으로 설정합니다. 반면 서버 관리자 도구는 사용자가 요청한 구성 요소만 배포하며 컴퓨터의 다른 어떠한 항목도 변경하지 않습니다. 필요하지 않을 수 있는 구성 요소를 확인하는 데 도움이 필요한 경우에는 SCW를 사용해야 합니다.

서버 관리자 도구와 SCW 모두가 네트워크 구성에 사용되지만 이 경우에는 SCW가 훨씬 더 강력한 기능을 제공합니다. 서버 격리 전략을 구현할 때 SCW는 유용한 정보를 제공하는 최상의 배포 도구가 될 수 있습니다. 이러한 작업은 분명히 고급 보안 관리 항목에 해당하지만 SCW 역시 고급 보안 도구에 해당합니다.

마지막으로 SCW를 사용하면 서버 관리자 도구로는 할 수 없는 몇 가지 추가적인 보안 설정도 구성할 수 있습니다. 하지만 Windows Server 2008에서는 이러한 설정이 대부분 더 효율적인 컨트롤로 대체되거나 이미 기본으로 설정되어 있습니다.

Jesper M. Johansson은 소프트웨어 보안 문제 분야의 보안 엔지니어이며 TechNet Magazine의 객원 편집자로서, MIS 분야 박사 학위를 취득했고 컴퓨터 보안 분야에서 20년 이상의 경력을 보유하고 있습니다.