A colossal Dreamer: GR鐵塔-天生我材

[VisualStudio:원격디버깅] 원격 디버거 방화벽 설정 본문

Development/랑구지(vbscript javascript java c# c++ objectiveC)

[VisualStudio:원격디버깅] 원격 디버거 방화벽 설정

江多林 2010. 9. 27. 18:37
매번 할 때 마동 귀찮은 과정을 겪는 원격 디버거에 대해서 친구가 물어봐서..
일단 기억나는데로 알려준 내용을 정리해 봅니다.
>>> 실전되지 않았으므로 안될 경우 피드백 주세요.. - follow up 해드릴께요. <<<

* check list
1. 내 개발PC로부터 서버로의 \\[server IP]\c$ 가 접속 되는 가 확인.
2. 서버로부터 내 개발PC로의 telnet [PC IP] 135 접속 되는 가 확인
3. 내 개발PCDCOM 사용 port 제한
    (나의 경우 TCP_5001 ~ TCP_5100 또는 TCP_5101~TCP_5200 사용)
4. 사용할 포트에 포트 리스너 등을 띄워 놓고,
   서버로부터 내 개발PC로의 telnet [PC IP] 5001 접속 되는 가 확인
5. 사용자 설정(개발PC내의 사용자/ 개발PC의 로그인사용자/ 서버내의 사용자) 정보의
   loginID와 password 를 동일하게 맞춰준다.
6. 원격 디버깅 실행..


* 원격 디버거의 통신 과정의 실체..
일단 원격 디버거와 VS 간의 통신은 예사롭지 않은 과정을 거치며,
이 과정은 인증과정을 최대한 OS에 맡겨 처리하는 것이 기인한다.
- 일반적인 Client와 Server의 통신 과정과는 많이 다름.

VS --> 원격디버거 : 서버측 login/pw 를 전달하여 netbios 로 VS를 인증함.
원격디버거 --> VS : RPC - DCOM Call 을 사용해서 접속 및 처리..(TCP_135 + TCP(for DCOM))

여기서 중요한 것이 VS개발PC에서 대상운영서버로 접근하는 것이 아니라,
거꾸로 대상운영서버가 VS개발PC로 RPC 접근한다는 것이다..
결구 자신의 개발PC로의 RPC-DCOM 을 위해서 모든 포트를 열어야 하는 문제에 봉착한다.
(어떤 보안담당자도 이렇게 열어주지는 않는다.. 내가 담당이 아닌 이상 이럴 수는 없는 거다. ㅡ.ㅡ)

그래서, 내 개발PC의
DCOM 사용 port를 100개 가량으로 제한해서,
서버로부터 내개발PC로 해당 포트 + TCP_135 를
보안담당자에게 열어댤라고 하여 처리하여야 한다.

DCOM port 제한하는 방법은 다른 블로거의 포스팅을 참조하시라..
나중에는 링크를 달겠음..

* 원격 디버거의 로그인 과정의 실체
개발PC-->서버 로의 인증: 서버의 로컬사용자 계정으로 인증
서버 --> 개발PC : 개발PC의 로컬사용자 계정으로 인증
서버 -디버깅- 개발PC : 개발PC의 로그인된 사용자 계정으로 실행

여기서, 서버 계정이야 만들면 그만이지만 --;+++
AD(active directory)에 조인되어 Domain계정으로 로그인하여 사용하는 경우가 문제가 된다.
생각보다 단순한 MS의 인증장치로 인해서...
Domain게정의 loginID와 동일한 로컬사용자를 생성하고, password를 Domain계정과 맞춰 두면 된다.
(주의: Domain계정의 경우 보통 3개월에 한 번씩 비밀번호를 바꾸게 되는데..
 이때 로컬사용자 및 서버사용자의 비밀번호도 매번 맞춰줘야 한다.. 반드시!!!)


*** 기억을 더듬어서 작성한 문서라.. ***
안되거나 틀린 부분이 있을 수 있습니다.
피드백 주시면, 제가 해드릴 수 있는 건 최대한 도와드릴께요..

수거..~~

참조: http://msdn.microsoft.com/ko-kr/library/bb385683(VS.90).aspx