2008/08/14

RPC over Http/s - 서버를 RPC 프록시 서버로 구성

우리나라 광대역(WAN) 인터넷망은 지난 인터넷 대란의 경험 때문에 Windows 에서 핵심으로 사용되는 포트중 몇개를 막아 놓은 ISP가 많습니다.

주로,. 135(RCP), 139(NetBIOS), 445(SMB) 등입니다.

이것 때문에 RPC over Http/s 기술이 나온것은 아니고,. 방화벽을 우회하기 위한 방법중 하나로 Http 프로토콜을 이용하기 위해서 Windows Server 2003 에서 지원하는 기술중 하나 입니다.

현재는 주로, Exchange Server 와 Outlook 과의 연동을 위한 방법으로 사용 되고 있습니다.

RPC over Http/s 에 대한 기술 문서는 인터넷상에 매우 많으므로, 여기서 잡담은. 생략하고 간략하게 스샷을 기준으로 구성 방법 입니다.


1. RPC over Http/s 를 사용하기 위해서는 IIS가 사전에 설치되어 있어야 합니다. 그 다음으로 제어판/프로그램 추가 삭제에서 아래와 같은 "HTTP 프록시 RPC"  구성요소를 설치해 주어야 합니다.



RPC over Http/s 는 그 이름처럼, HTTP 프로토콜을 이용하기 때문에 HTTP 프로토콜을 처리하기 위해서는 IIS 설치가 필요합니다.


2. 뭐 없습니다. 그냥,. "HTTP 프록시 RPC" 구성 요소만 설치하면 끝 입니다. 구성요소를 설치하고 나면 다음과 같이 RPC 프록시 구성이 되어 있습니다.



RPC 패킷은,. 2가지를 제공하는데요. 보통의 Http 패킷과, SSL(인증서) 패킷 처리를 위한 2가지 프록시가 설정되어 있으며,. 다음과 같이 "웹 서비스 확장" 에도 추가 되어 있습니다.



위 2가지는 단순하게,. 라이브러리 dll 파일을 가상 폴더와, 웹서비스 확장에 추가한 정도 입니다. 혹시 삭제 되더라도 그냥 직접 등록해도 상관은 없습니다. 그리고, ISAPI 항목에도 추가되어 있습니다.




RPC 등록정보의 보안-인증방법 에서, "기본 인증" 외 체크를 해제하면 됩니다. 물론 Windows 통합 인증도 가능하지만,. 실제로 Outlook 에서 SSL 인증을 하지 않으면 RPC Proxy 를 통해서 로그온이 되지 않습니다. 매뉴얼에는 SSL 이 절대적이지 않다고 하는데... -_-;;

..).-...).....E.
.y..@........~..
.l.P.s..*.....P.
..:...HTTP/1.0 4
01 Anonymous req
uests or request
s on unsecure ch
annel are not al
lowed..
        

SSL 을 이용하면, 평문 형태로 인증을 하는 "기본 인증" 을 이용 Outlook 에서 설정이 가능하며,. 사용자 확인등 정상적인 과정이 문제 없이 진행 됩니다.

그래서,. 되도록이면 RPC Proxy 가 설정된 웹사이트 인스턴스에 SSL 을 설정해 주는 것이 좋습니다. SSL 는 정상적인 공용 SSL 말고, 그냥 사설 SSL 을 설정해도 상관 없으며, IIS Resources Kits 의 SelfSSL 을 이용하면 됩니다.

이로서,. 서버에서의 RCP 프록시 구성은 끝났습니다. 위 RPC 프록시로의 전달된 Http 패킷의 내용에 따라서 RPC 프록시가 요청된 서비스 로의 요청을 전달하고 전달 받는 중계 역할을 하는 것입니다.

실제 패킷을 보면, 다음과 같이 클라이언트 측의 Outlook 에서 Exchange Server 측에 패킷을 전달 합니다.

..).....).-...E..*5?@........l..
.~.s.P......*.P...e...RPC_IN_DAT
A /rpc/rpcproxy.dll?wssplex-vm1.
wssplex.net:6002
HTTP/1.1..Accep
t: application/rpc..User-Agent:
MSRPC..Host: wssplex-vm1.wssplex
.net..Connection: Keep-Alive..Ca
che-Control: no-cache..Pragma: n
o-cache..Authorization: NTLM TlR
MTVNTUAADAAAAGAAYAI4AAAAYABgApgA
AAA4ADgBIAAAAGgAaAFYAAAAeAB4AcAA
AAAAAAAC+AAAABYKIogUBKAoAAAAPdwB
zAHMAcABsAGUAeABhAGQAbQBpAG4AaQB
zAHQAcgBhAHQAbwByAEcARwBHAEcARwA
tADEAWgBYAEYASgBKADcATwBKAHjMj8t
b5rV/AAAAAAAAAAAAAAAAAAAAAOexBsr
j1KHZkBbl0wmIxiLeMKEtJpFZsw==..C
ontent-Length: 4........


그 다음으로,.

Exchange Server 에 RPC-HTTP 탭이 있는지 부터 확인해 봐야 합니다. 없다면,. 서비스팩이 설치되어 있지 않으므로 서비스 팩을 설치해야 합니다. 서버 구성에 따라서 프런트 엔드 서버 또는 백 엔드 서버 지정을 할수 있습니다.



GUI 에서, RPC-HTTP 구성을 하지 않았다면,. 다음과 같이 레지스트리에 직접 등록해 줘도 상관 없습니다. GUI 에서 두가지 구성중에 하나라도 설정이 되어 있으면 자동으로 아래와 같이 레지스트리 값이 등록 됩니다.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters]
"NSPI interface protocol sequences"=hex(7):6e,00,63,00,61,00,63,00,6e,00,5f,00,\
  68,00,74,00,74,00,70,00,3a,00,36,00,30,00,30,00,34,00,00,00,00,00

그리고, RPC over HTTP validport (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Rpc\RpcProxy) 설정은 레지스트리를 직접 수정해도 상관없지만,. 리소스킷의 rpccfg 또는 다음 유틸을 이용해도 좋습니다.




댓글 없음:

댓글 쓰기

가장 많이 본 글