ISA Server 2006을 통한 TS 게이트웨이 보안 강화 – 시나리오 1
Urikiri 2008. 8. 19. 09:00안녕하세요 Urikiri입니다.
Windows Server 2008은 응용프로그램 가상화의 보다 나은 가치를 제공하기 위해 터미널 서비스 게이트웨이를 제공하고 있습니다.
터미널 서비스 게이트웨이는 Cygni님이 게시한 터미널 서비스 게이트웨이 역할이란? 글에 잘 설명이 되어 있습니다.
간단하게 설명을 드리자면 외부에서 내부의 원격 데스크탑 연결을 할 때 3389 포트 대신에 보안이 강화된 SSL 즉 443포트를 이용해서 연결을 할 수 있는 방법입니다.
이 기능을 이용해서 외부에 웹을 통해 응용프로그램을 게시하는 터미널 서비스 웹 엑세스도 443을 통해 게시할 수 있습니다.
이번 글에서는 ISA Server 2006을 통해 TS 게이트웨이를 게시하는 방법을 설명합니다. 그림 1은 연결 중 일어나는 컴퓨터들과 데이터의 흐름을 요약해서 보여줍니다. 여기에서는 NPS(Network Policy Server)를 TS 게이트웨이에 설치를 합니다. 다음에는 NPS가 TS 게이트웨이와 분리되어 중앙에서 운영되는 시나리오를 설명해 드리겠습니다.
그림 1 ISA Server 2006을 통한 TS 게이트웨이 게시
외부 RDP 사용자는 연결을 초기화 합니다. 첫 번째로 클라이언트는 TS 게이트웨이의 외부 이름을 풀이할 수 있어야 합니다(여기에서는 tsg.contoso.com). 외부 DNS는 이 이름을 ISA Server의 외부 IP로 이름풀이를 합니다.
SSL 터널은 RDP 클라이언트와 ISA 서버의 외부 인터페이스와의 협상입니다. ISA 서버는 포트 443에 대한 웹 게시 규칙을 가지고 있습니다. 이 포트는 tsg.contoso.com에 발급된 인증서를 사용합니다.
규칙을 평가하고 허용된 트래픽인지 체크한 후 ISA 서버는 웹 게시 규칙에서 지정한 서버의 이름을 풀기 위해 DNS 쿼리를 내부 DNS 서버로 전송합니다.(여기에서는 DC에 설치된 DNS). TS 게이트웨이로 SSL 터널이 열린 다음 ISA 서버는 인증 요청을 TS 게이트웨이로 전달합니다.
TS 게이트웨이 서버는 사용자의 자격 증명을 검증하고 증명합니다. 사용자는 연결할 수 있는 권한을 부여 받습니다. 사용자가 연결 협상에 대한 권한을 부여 받은 후에 TS 게이트웨이 서비스는 TCP 443 포트의 요청들을 받습니다. 그리고 TCP 3389포트를 통해 RDP 패킷을 응용프로그램(CRM 프로그램등) 을 가지고 있는 내부 터미널 서버로 전달합니다.(기본설정) 이 시점에서부터 RDP 클라이언트는 패킷들을 ISA 서버를 통해서 TS 게이트웨이 서비스로 보냅니다. RDP 클라이언트는 이 패킷들을 내부 터미널 서버로 보내고, 내부 터미널 서버는 RDP 클라이언트로 보냅니다.
이 상황이 일어나기 전에 RDP Over HTTPS는 RDP/RPC/HTTPS 그 이상의 무엇도 아니라는 게 중요합니다. RDP 클라이언트는 RPC 헤더안에 RDP 통신을 캡슐화합니다. RPC 헤더는 바로 SSL을 사용해 보안이 적용된(또는 TLS – Transport Level Security) HTTP 헤더로 캡슐화 됩니다. 모든 컴포넌트는 RPC Over HTTPS 솔루션을 위해 필요합니다. 이것은 TS 게이트웨이 역할 서비스를 설치할 때 RCP Over HTTP 프록시가 자동으로 설치되는 이유입니다. 보다 자세하게 프로토콜이 어떻게 동작하는지에 대해 이해하고 싶으시면 "Testing RPC over HTTP Through ISA Server 2006 Part1 : Protocols, Authentication and Processing"을 읽어보십시오. ISA Server Team Blog에서 찾아보실 수 있습니다.
이 방법은 TS 게이트웨이가 설치된 Windows Server 2008이 필요합니다. TS 게이트웨이는 RPC Over HTTP 프록시에 종속됩니다. RDP Over RPC over HTTP 프록시 기능은 꼭 IIS 7.0이 설치되고 실행 되고 있어야 합니다.
그리고 NPA(Network Policy and Access)서비스도 필요합니다. 그리고 만약 원한다면 TS 게이트웨이에 저장소, 관리 그리고 TS-CAPs(Terminal Services Connection Authorization Policies) 검증을 중앙에서 하기 위해 NPS서버를 IAS(Internet Authentication Services)로 사용할 수 있습니다. 마지막으로 TS 게이트웨이 서버용 SSL 인증서가 없다면 발급받아야 합니다. 꼭, ISA Server 2006이 인증서를 발급하는 CA(Certificate Authority)를 신뢰하고 있어야 합니다. 신뢰하기 위해서는 인증서 가져오기를 이용해서 신뢰된 인증 기관 저장소에 인증서를 저장합니다.
TS 게이트웨이 인증 정책이 설정한다면 TS 게이트웨이 인증액티브 디렉터리 도메인 서비스는 필수입니다. TS 게이트웨이 서버에 연결하기 위해서 이 인증 정책은 액티브 디렉터리 보안 그룹의 멤버의 사용자를 필요로합니다.이 특별한 설치는 Windows Server 2003 SP2가 실행되는 액티브 디렉터리를 사용할 수 있습니다.
TS 게이트웨이 서비스 설치가 끝나면 설치된 컴포넌트들을 볼 수 있는 그림 2와 같은 화면이 나타납니다. TS 게이트웨이에 연결하기 위해 클라이언트는 Windows Vista, Windows XP with SP2 와 RDP 6.0 또는 그 이상, Windows Server 2008, Windows Server 2003 with SP1 또는 그 이상, RDP 6.0 이상의 환경이어야만 합니다. TS 게이트웨이 설정의 보다 자세한 정보는 Windows Server 2008 TS 게이트웨이 Server Step-by-Step 가이드를 확인해주시기 바랍니다. 자 이제 ISA Server 2006 설정 방법을 확인해 보겠습니다.
그림 2 TS 게이트웨이 설치 결과
ISA Server 2006 설정
첫번째 순서는 웹 수신기를 만드는 것 입니다. 웹 수신기는 외부 RDP 클라이언트로부터의 요청을 처리할 것 입니다.
웹 수신기를 다음 사항에 맞게 만들어 주십시오.
Authentication: Basic
Authentication Validation: Windows (Active Directory)
Connections: Enable SSL (HTTPS) connections on port 443
Certificates: certificate issued to tsg.contoso.com
Networks: External
다음으로, 웹 게시 규칙을 만듭니다. RDP 클라이언트는 Outlook Anywhere가 사용하는 프로토콜과 같은 프로토콜을 사용할 것 입니다. 따라서 Exchange Server 2007 마법사를 이용해서 다음 순서대로 진행해 주시기 바랍니다.
1. 방화벽 정책에서 마우스 오른쪽 버튼을 클릭합니다. 새로 만들기를 선택합니다. 그리고 Exchange 웹 클라이언트 액세스 게시 규칙을 클릭합니다.
2. 웹 게시 규칙 생성 마법사 첫 페이지에 규칙 이름을 입력하고 다음을 누릅니다.
3. 서비스 선택 페이지에서 Exchange 버전을 선택합니다. 여기에서는 Exchange Server 2007을 선택합니다. 그리고 "외부에서 Outlook 사용(RPC/HTTP(s))"를 선택한 후 다음을 클릭합니다.(참고: Exchange Server for Outlook 2007 클라이언트에 추가 폴더 게시 옵션은 선택하지 않습니다.)
4. 게시 유형 페이지에서 "단일 웹 사이트 또는 부하 분산 장치 게시"를 선택한 후 "다음"을 클릭합니다.
5. 서버 연결 보안 페이지에서 "SSL을 사용하여 게시된 웹 서버 또는 서버 팜에 연결"을 선택 후 다음을 클릭합니다.
6. 내부 게시 정보 페이지에서 내부 사이트 이름 입력 박스에 TS 게이트웨이 서버의 이름을 입력합니다. 그리고 "컴퓨터 이름 또는 IP 주소를 사용하여 게시된 서버에 연결" 옵션의 체크 박스에 체크한 다음서버 이름을 입력합니다. 만약 TS 게이트웨이 서버 이름을 모를 경우 찾아보기 버튼을 이용해서 위치를 탐색합니다. 참고. 이 페이지에서 사용하는 이름은 TS 게이트웨이 웹사이트로 연결되는 웹사이트 인증서의 제목과 꼭 일치해야 합니다.
7. 공개 이름 정보 페이지에서 "이 도메인 이름(아래에 입력)"을 선택 한 다음 공개 이름 박스에 이 URL에 발급된 인증서 이름과 같은 이름을 입력합니다. 여기에서는 tsg.contoso.com 을 입력한 후 다음을 클릭합니다.
8. 웹 수신기 선택 페이지에서 이전에 만들어 놓은 웹 수신기를 선택합니다. 그리고 다음을 클릭합니다.
9. 인증 위임 페이지에서 "위임 안함 – 클라이언트에서 직접 인증"을 선택 후 다음을 클릭합니다.
10. 사용자 집합 페이지에서 "모든 사용자"가 선택되어 있는지 확인 후 다음을 클릭합니다. 그리고 마침을 클릭해서 적용합니다.
규칙을 더블 클릭한 후 "경로"텝에서 오직 패스가 "/rpc/*"만 가지고 있는 것을 확인할 수 있습니다. 이것은 외부에서 Exchange Server 2007 사용 마법사를 사용했기 때문입니다.
클라이언트 액세스 테스트와 모니터링
테스트 하기 전에 클라이언트는 RDP 6.0 또는 그 이상이 설치되어있어야 합니다. RDP 클라이언트 응용프로그램을 설정하기 위해서 프로그램을 실행시키고 접속하고 싶은 터미널 서버의 이름을 입력합니다. 옵션 버튼을 클릭합니다. 고급 탭에서 설정버튼을 클릭한 후 외부 TS 게이트웨이 서버의 이름을 입력합니다. 그림 3에서 이 이름은 웹 수신기에 등록된 인증서 이름입니다. Windows NTLM을 사용합니다. 입력이 완료 됐으면 확인을 누르고 연결 버튼을 클립합니다.
그림 3 RDP 클라이언트 설정
참고. RDP 6.0 클라이언트(Windows XP와 Windows Server 2003)은 그림 3과 같은 화면으로 나타납니다. 인증 프롬프트가 두번 실행이 될 것 입니다. 첫번째 인증은 TS Gatewary 컴퓨터에서 인증을 합니다. 그리고 두번째는 접근하려고 하는 터미널 서버에서 인증을 합니다. 이것은 ISA 서버의 설정 때문에 발생하는 것이라고 생각할 수 있기 때문에 중요합니다. 사실 ISA 서버는 ISA 서버를 통한 익명 연결을 허용하는 "모든 사용자"에 대해 웹 게시 규칙은 어떠한 인증도 처리하지 않습니다.
Windows Server 2008의 RDP 클라이언트는 그림 4에서 보시는 것과 같이 원격 컴퓨터에 TS 게이트웨이 자격증명을 사용합니다. 이 옵션이 선택되어있으면 자격 증명을 두번 입력할 필요가 없습니다. 결과적으로 사용자 경험이 낳습니다. 이 SSO(Single Sign-on)옵션은 Windows Vista SP1에서도 사용 가능합니다.
그림 4 Windows Server 2008 RDP 클라이언트
TS 게이트웨이 관리자의 모니터링 옵션을 통해 연결을 모니터링 할 수 있습니다. TS 게이트웨이 서비스는 서버에 연결을 시도한 인증되지 않은 사용자의 자세한 정보도 제공합니다. 그림 5에서 이벤트 뷰어는 TS 게이트웨이를 통해 권한이 없는 사용자로부터 시도된 연결을 볼 수 있습니다.
그림 5 TS 게이트웨이 서비에 기록된 이벤트
이 이벤트에는 ISA Server 2006의 IP 주소가 기록되어있습니다. 그 이유는 ISA 서버의 웹 게시 규칙 옵션 중 "요청이 ISA Server 컴퓨터에서 시작된 것으로 표시"가 설정되어있기 때문입니다. 만약 원래 클라이언트 IP 주소가 등록되기를 원한다면 ISA Server 2006의 웹 게시 규칙에서 "요청이 원래 클라이언트에서 시작된 것으로 표시" 옵션을 선택하면 됩니다.
ISA Server에서 모니터링
ISA Server 2006 지원팩의 새로운 기능을 사용합니다. 이것은 보다 자세하게 볼 수 있고 각각에 대한 내부 네트워크로의 연결을 이해할 수 있습니다. 그림 6은 강조된 한 개의 연결을 보여줍니다. 요청 : the RPC_IN_DATA verb indicating the URL for the RPC over HTTP Proxy.
그림 6 지원팩을 사용한 ISA Server 2006 로깅
만약 로깅을 계속 지켜본다면 다른 "RPC Over HTTP 동사, RPC_OUT_DATA"를 볼 수 있습니다. 이것은 HTTP 방식이 사용되고 있다는 것을 알아내는데 중요합니다. RDP/HTTP는 "RPC_IN_DATA" 와 "RPC_OUT_DATA"가 나타납니다. 만약 이 방식을 거부하는 HTTP 필터링을 사용한다면 트레픽은 ISA 서버에서 거부될 것 입니다. 만약 당신의 환경을 잠그고 싶다면 RDP/HTTP 웹 게시 규칙을 오직 두 방식만 허용하게 설정할 수 있습니다. 일반적으로 게시할 때 사용되는 HTTP 방식에 대한 보다 자세한 정보는 다음 글을 읽어 보십시오. "HTTP Filtering in ISA Server 2004"
[원문]
Enhance TS Gateway Security with ISA Server 2006
Urikiri Zzarit~~~
Never Sotp Growing Up