Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 3개 있습니다.)
예전과는 달리, 요즘에는 심심치 않게 기업들의 내부 네트워크에서 Proxy 서버를 이용하는 것을 볼 수 있습니다.

개인적으로, 들어오는 요청을 막는 것에 대해서는 이해가 되지만, 나가는 요청에 대해서 막는 것은 ... 전혀 이해할 수가 없습니다. 오히려 그럼으로써, 개발자들의 개발생산성이 현저하게 줄어들게 되지요.

국내 모 기업같은 경우에는, 들어오고 나가는 사람의 노트북과 외장하드를 체크하는데, 그 기준이 도저히 이해할 수 없기도 합니다. 외장하드의 경우, 가지고 나갈 때 무조건 포맷을 하게 하는데요. ^^; 사실 그럼 누가 정보를 외장하드에 복사를 하겠습니까? 차라리 노트북 내장하드에 복사해서 빼내는 방법이 있는것을. 그런 걸 한번 겪고 나면 외부 개발자는 절대로 외장하드를 같이 들고 들어가지는 않을 것입니다. 그런데... 외장하드가 왜 있을까요? 필요하니까 있는 것이죠. 그 개발자는 그 외장하드가 없음으로 인해 평상시 발휘했던 개발 생산성을 그만큼 제한되어지는 결과만 낳을 뿐입니다.

나가는 요청을 80 포트로 제한하는 것이 왜 ... 쓸모없느냐고 묻는 분들이 계실 것 같은데요.
80 포트가 있다는 것 하나만으로도 얼마든지 외부로 파일을 업로드할 수 있지요. 그렇다면... Proxy 서버의 로그에 남게 되지 않느냐고 한 번 더 반문하시는 분이 계시겠지만. 정말로, 증거 없이 기업내 파일을 HTTP:80 포트를 통해 외부로 유출하고자 마음만 먹는다면,,, 암호화를 거쳐 생성된 binary 스트림을 외부에 업로드하면 되는 것입니다. 그런 패킷들은 Proxy 서버에 기록이 남는다고 해도 모니터링을 하고 있는 감시자들은 그것이 어느 파일의 내용인지 전혀 알 수가 없기 때문이죠.

물론, 이러한 일련의 조치를 통해서 다소 일상적인 외부로의 접촉을 줄일 수는 있습니다. 하지만, 중요한 것은... 그것이 결코 100% 안전한 방법이라고 볼수는 없습니다. 정말... 내부 자료에 대해서 보안을 하고 싶다면. 다음과 같은 지침으로 운영해야 합니다.

외부 개발자로 하여금, 노트북이 아닌 데스크톱 컴퓨터를 사용하도록 강제하여야 하며, 업무가 끝나고 그 컴퓨터를 업체로 가지고 나갈 때에는 완벽하게 포맷을 해줘야 합니다. 물론, 해당 데스크톱에서는 내부 네트워크만 사용하게 하여야 하며 절대로 인터넷 접속을 해줘선 안되는 것이지요.

음... ^^ 서론이 길었군요.
암튼... 저 역시 요즘 그러한 이유로 인해서 아주 답답한 심정을 가눌 길이 없습니다. 쓸데없이 나가는 요청을 막는 바람에 ^^ 평소에 해오던 자유로운 작업들을 제한받게 되니까요. 일례로, 요즘... 모 은행에 들어가서 작업을 하고 있는데, Proxy 경유로 인해서 아웃룩 익스프레스를 통한 뉴스그룹 접속도 못하고 있습니다.

그래서,,, 고민을 좀 하다가 방법을 찾은 것이, HTTPort / HTTHost였습니다.
속도는 좀 느리지만, 그나마 이걸로 약간의 불편함은 덜게 되었습니다. 암튼... ^^

대강 이론은 이렇습니다. 방화벽 외부의 컴퓨터(예를 들어, 집에 있는 컴퓨터)에 HTTHost 프로그램을 구동시키고 해당 프로그램은 80 포트로 요청을 대기하고 있게 됩니다. 방화벽 안에 있는 컴퓨터에서는 HTTPort 프로그램을 구동시키고, 여러 가지 Application Port로 포트를 Listening 상태로 열어두고 있게 됩니다. 이후, Outlook Express에서 뉴스그룹 서버를 127.0.0.1:119로 설정을 하면, OE에서의 모든 요청이 HTTPort로 전달되어지고, HTTPor 는 해당 패킷을 HTTP 프로토콜로 한 번 감싼 후에 정해진 Proxy 서버를 통해 원하는 패킷을 HTTHost에게 전달하는 것입니다.
HTTHost 는 들어온 요청에 대해서 HTTP 프로토콜을 제거하고 원래의 패킷으로 실제 뉴스그룹 서버에 접속을 할 수 있게 됩니다.

실제 동작 방법을 나타낸 그림을 HTTPort에 소개된 그림에서 볼 수 있습니다.




HTTPPort/HTTHost는 다음의 URL에서 다운로드할 수 있습니다.
http://www.htthost.com/

HTTPort의 설정 방법은 해당 프로그램을 실행시킨 후, "?" 버튼을 통한 각각의 설정란에 클릭하는 방법으로 익히실 수 있습니다.
HTTHost의 설정 방법은, 해당 프로그램을 설치한 후 같은 폴더에 있는 Readme.txt 파일을 통해서 가능하고요.

참고로, 방화벽 외부의 컴퓨터에 굳이 HTTHost를 둘 수 없는 사용자라도 공용으로 24시간 동작하는 HTTHost에 접속해서 해당 기능을 정상적으로 이용할 수 있습니다. 그나저나... 이렇게... 어차피 접근할 수 있는 뉴스그룹을 왜 막느냐 말입니까?... 기업에 있는 보안 관계자 여러분들. 딱 2가지 환경으로 네트워크를 구분해 주시길 바랍니다.

"HTTP조차 허용되지 않는 완벽한 내부 네트워크와 그 이외에 나가는 포트를 모두 허용하는 네트워크."
[연관 글]






[최초 등록일: ]
[최종 수정일: 6/25/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2009-07-14 11시43분
.NET Service Bus 응용 사례: SocketShifter
; http://www.sysnet.pe.kr/2/0/752
kevin25
2022-07-23 10시28분
blackarrowsec/pivotnacci
 - A tool to make socks connections through HTTP agents
; https://github.com/blackarrowsec/pivotnacci
정성태

... 151  152  153  154  [155]  156  157  158  159  160  161  162  163  164  165  ...
NoWriterDateCnt.TitleFile(s)
1237정성태2/18/201235288개발 환경 구성: 142. Windows Embedded POSReady 7 설치 [1]
1236정성태2/17/201231132개발 환경 구성: 141. Windows 2008 R2 RDP 라이선스 서버 설치하는 방법
1235정성태2/16/201228122.NET Framework: 304. Hyper-V의 가상 머신을 C#으로 제어하는 방법 [1]파일 다운로드1
1234정성태2/16/201230140.NET Framework: 303. 원본 파일의 공백/라인을 유지한 체 XML 파일을 저장하는 방법 [1]파일 다운로드1
1233정성태2/16/201236309.NET Framework: 302. supportedRuntime 옵션과 System.BadImageFormatException 예외 [5]
1232정성태2/9/201232076VC++: 57. 웹 브라우저에서 Flash만 빼고 다른 ActiveX를 차단할 수 있을까? [3]파일 다운로드1
1231정성태2/8/201241524VC++: 56. Win32 API 후킹 - Trampoline API Hooking [5]파일 다운로드1
1230정성태2/6/201226550개발 환경 구성: 140. 프로젝트 생성 시부터 "Enable the Visual Studio hosting process" 옵션을 끄는 방법
1229정성태2/4/201232234.NET Framework: 301. P/Invoke의 성능을 높이기 위해 C++/CLI가 선택되려면? [5]파일 다운로드1
1228정성태2/4/201281696.NET Framework: 300. C#으로 만드는 음성인식/TTS 프로그램 [47]파일 다운로드1
1227정성태2/3/201232364.NET Framework: 299. 해당 어셈블리가 Debug 빌드인지, Release 빌드인지 알아내는 방법파일 다운로드1
1226정성태1/28/201273725.NET Framework: 298. 홀 펀칭(Hole Punching)을 이용한 Private IP 간 통신 - C# [15]파일 다운로드3
1225정성태1/24/201228611.NET Framework: 297. 특정 EXE 파일의 실행을 Internet Explorer처럼 "Protected Mode"로 실행하는 방법 [1]파일 다운로드1
1224정성태1/21/201240226개발 환경 구성: 139. 아마존 EC2에 새로 추가된 "1년 무료 Windows 서버 인스턴스"가 있다는데, 직접 만들어 볼까요? ^^ [11]
1223정성태1/20/201230062.NET Framework: 296. 괜찮은 문자열 해시함수? - 두 번째 이야기 [1]파일 다운로드1
1222정성태1/18/201237627.NET Framework: 295. 괜찮은 문자열 해시 함수? [4]파일 다운로드1
1221정성태1/17/201226738오류 유형: 147. System.Runtime.InteropServices.COMException (0x80005000)
1220정성태1/15/201227246.NET Framework: 294. Master web.config 파일을 수정하려면?파일 다운로드1
1219정성태1/15/201229433.NET Framework: 293. Microsoft PowerPoint 슬라이드를 HTML 파일로 ".files" 폴더 없이 저장하는 방법 (C# 코드)파일 다운로드1
1218정성태1/15/201242977.NET Framework: 292. RSACryptoServiceProvider의 공개키와 개인키 구분 [1]파일 다운로드2
1217정성태1/14/201244290.NET Framework: 291. .NET에서 WAV, MP3 파일 재생하는 방법 [1]파일 다운로드1
1216정성태1/14/201232821오류 유형: 146. Microsoft Visual C++ 재배포 패키지 - 설치 로그 남기는 방법 [1]
1215정성태1/9/201230458제니퍼 .NET: 20. 제니퍼 닷넷 적용 사례 (3) - '닷넷'이 문제일까? '닷넷 개발자'가 문제일까? [6]
1214정성태1/3/201227137제니퍼 .NET: 19. 제니퍼 닷넷 설치/제거 방법 - IIS
1213정성태12/31/201127215.NET Framework: 290. WCF - 접속된 클라이언트의 IP 주소 알아내는 방법 - 두 번째 이야기
1212정성태12/31/201127151오류 유형: 145. The trust relationship between this workstation and the primary domain failed.
... 151  152  153  154  [155]  156  157  158  159  160  161  162  163  164  165  ...