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
정성태

... 76  77  78  [79]  80  81  82  83  84  85  86  87  88  89  90  ...
NoWriterDateCnt.TitleFile(s)
11994정성태7/22/201922748개발 환경 구성: 454. Azure 가상 머신(VM)에서 SMTP 메일 전송하는 방법파일 다운로드1
11993정성태7/22/201917511오류 유형: 561. Dism.exe 수행 시 "Error: 2 - The system cannot find the file specified." 오류 발생
11992정성태7/22/201919764오류 유형: 560. 서비스 관리자 실행 시 "Windows was unable to open service control manager database on [...]. Error 5: Access is denied." 오류 발생
11991정성태7/18/201916751디버깅 기술: 128. windbg - x64 환경에서 닷넷 예외가 발생한 경우 인자를 확인할 수 없었던 사례
11990정성태7/18/201918702오류 유형: 559. Settings / Update & Security 화면 진입 시 프로그램 종료
11989정성태7/18/201917528Windows: 162. Windows Server 2019 빌드 17763부터 Alt + F4 입력시 곧바로 로그아웃하는 현상
11988정성태7/18/201920787개발 환경 구성: 453. 마이크로소프트가 지정한 모든 Root 인증서를 설치하는 방법
11987정성태7/17/201926742오류 유형: 558. 윈도우 - KMODE_EXCEPTION_NOT_HANDLED 블루스크린(BSOD) 문제 [1]
11986정성태7/17/201918397오류 유형: 557. 드라이브 문자를 할당하지 않은 파티션을 탐색기에서 드라이브 문자와 함께 보여주는 문제
11985정성태7/17/201918379개발 환경 구성: 452. msbuild - csproj에 환경 변수 조건 사용 [1]
11984정성태7/9/201926636개발 환경 구성: 451. Microsoft Edge (Chromium)을 대상으로 한 Selenium WebDriver 사용법 [1]
11983정성태7/8/201915796오류 유형: 556. nodemon - 'mocha' is not recognized as an internal or external command, operable program or batch file.
11982정성태7/8/201915836오류 유형: 555. Visual Studio 빌드 오류 - result: unexpected exception occured (-1002 - 0xfffffc16)
11981정성태7/7/201919280Math: 64. C# - 3층 구조의 신경망(분류)파일 다운로드1
11980정성태7/7/201929055개발 환경 구성: 450. Visual Studio Code의 Java 확장을 이용한 간단한 프로젝트 구축파일 다운로드1
11979정성태7/7/201919993개발 환경 구성: 449. TFS에서 gitlab/github등의 git 서버로 마이그레이션하는 방법
11978정성태7/6/201919201Windows: 161. 계정 정보가 동일하지 않은 PC 간의 인증을 수행하는 방법 [1]
11977정성태7/6/201923656오류 유형: 554. git push - error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
11976정성태7/4/201918141오류 유형: 553. (잘못 인증 한 후) 원격 git repo 재인증 시 "remote: HTTP Basic: Access denied" 오류 발생
11975정성태7/4/201926620개발 환경 구성: 448. Visual Studio Code에서 콘솔 응용 프로그램 개발 시 "입력"받는 방법
11974정성태7/4/201922728Linux: 22. "Visual Studio Code + Remote Development"로 윈도우 환경에서 리눅스(CentOS 7) C/C++ 개발
11973정성태7/4/201921127Linux: 21. 리눅스에서 공유 라이브러리가 로드되지 않는다면?
11972정성태7/3/201925340.NET Framework: 847. JAVA와 .NET 간의 AES 암호화 연동 [1]파일 다운로드1
11971정성태7/3/201920957개발 환경 구성: 447. Visual Studio Code에서 OpenCvSharp 개발 환경 구성
11970정성태7/2/201920173오류 유형: 552. 웹 브라우저에서 파일 다운로드 후 "Running security scan"이 끝나지 않는 문제
11969정성태7/2/201920682Math: 63. C# - 3층 구조의 신경망파일 다운로드1
... 76  77  78  [79]  80  81  82  83  84  85  86  87  88  89  90  ...