프록시 서버의 동작과 유형
게시일: 2005/08/26 | 글쓴이: doa | 25136 번 | 프린트 | 메일


요즘 대부분의 사람들은 프록시 서버라고하면 IP를 숨기는데 사용하는 서버 정도로 인식하고 있다. 사실 프록시 서버의 원래 도입 목적은 캐쉬 서버이다. 프록시의 사전적 의미는 다음과 같다.

  1. [U] 대리, 대리권; [C] (주주 총회 등의) 대리 위임장.
  2. 대리인(agent); 대용품(substitute).


아울러 한메 myQuickFind 에서 찾아본 컴퓨터에서 사용되는 프록시의 의미이다. 다소 예상밖이지만 기본적으로 프록시=캐쉬로 보고 있다.

컴퓨터 시스템에서 가장 최근에 사용된 주기억 장치의 내용을 캐시 기억 장치에 저장해 둠으로써, 다음 번에 주기억 장치에 대한 접근 요구가 발생했을 때, 캐시 기억 장치를 사용해 보다 빠르게 서비스를 제공할 수 있는 것과 같은 원리의 요청 서비스 기술. 사용자가 이제까지 인터넷을 통해 접근했던 정보들을 컴퓨터의 하드 디스크 일정 영역에 저장해 둔다. 마치 하드 디스크가 캐시 기억 장소의 역할을 대신하게 된다. 이후 사용자가 인터넷 서비스를 요청하면, 일단 하드 디스크에 저장되어 있는 프록시 정보를 이용한다. 만일 사용자가 요청한 정보가 하드 디스크에 있으면, 통신망을 통해 원격지로부터 자료를 수신하지 않고도 사용자에게 정보를 제공할 수 있기 때문에, 보다 빠르게 요청 응답을 제공할 수 있다는 장점이 있다. 만일 사용자가 요청한 정보가 원격지에 있는 호스트에서 변경된 경우에는 하드 디스크에 있는 프록시 정보가 올바르지 못한 것이 된다. 따라서 사용자 요청이 발생하면 무조건 하드 디스크에서 전달하는 것이 아니라, 일단 상대방 호스트에게 정보 수정 여부를 확인한 뒤, 정보가 바뀌지 않았으면 하드 디스크의 내용을 사용자에게 전달한다. ☞ cache 참조


위의 두개의 사전적 의미에서 알 수 있듯이 프록시는 캐쉬 서버로서 사용자의 요청을 대리하는 일을 하고 있다는 것을 알 수 있다. 원래 인터넷에서 사용되는 프록시는 다음과 같은 용도로 사용된다.

  1. 프록시 서버의 용도
    • 성능 향상을 위한 캐쉬 서버
      프록시가 없는 경우
      A 클라이언트는 B 서버에 문서를 직접 요청하고 B 서버에서 전달한 문서를 클라이언트를 통해 바로 표출한다.


      프록시가 있는 경우
      A 클라이언트는 C 프록시에게 B 서버로부터 B1이라는 문서를 가져올 것을 요청하고, C 프록시가 B 서버에 문서를 요청한다. B 서버의 응답은 C 프록시의 캐쉬에 저장되며, C 프록시의 캐쉬 데이타는 다시 A 클라이언트로 전달된다.



      이 경우 A1이라는 다른 클라이언트가 C 프록시에게 다시 B 서버의 B1이라는 문서를 요청하면 C 프록시는 B 서버에 문서를 요청하는 것이 아니라 캐쉬에 저장된 B1 문서를 A1에 전달하면 되므로 속도는 비약적으로 향상된다주1. 아울러 B 서버의 입장에서 보면 문서를 요청한 것은 A1 클라이언트가 아니라 C 프록시가 되므로 IP는 자동적으로 숨겨지게된다.


    • 필터링 프록시 서버의 두번째 용도는 특정 사이트의 접속을 막는 필터로서 사용할 수 있다. 예를들어 많은 ISP에서 아이들이 유해한 사이트의 접속을 막기위한 서비스를 제공하고 있다. 반드시 프록시를 통해 이러한 작업을 하는 것은 아니지만 프록시에서도 이러한 사이트의 접속을 막을 수 있다. 가장 쉬운 예는 광고없는 인터넷, Privoxy에서 설명한 Privoxy 이다.


  2. 프록시 서버의 유형 위의 설명은 프록시가 사용자 요청을 처리하는 매카니즘을 간단히 설명한 것이다. 즉, 프록시는 사용자의 요청을 대리해서 다른 서버로 부터 사용자의 요청을 처리하며, 사용자가 요청한 문서가 캐쉬에 있는 경우 캐쉬의 데이타를 전송함으로서 넷트웍 속도를 향상 시키는 역할을 하는 서버라는 얘기가된다.

    그러나 초고속 인터넷이 일반화된 지금은 프록시 서버를 경유해서 문서를 요청하는 것보다는 직접 요청하는 것이 훨씬 빠르다. 따라서 대부분의 사람들은 이 프록시 서버를 캐쉬 서버가 아니라 자신의 IP를 숨기위해 대리 서버로 사용하고 있다.

    인터넷에서는 누구나 접근할 수 있는 공개 프록시 목록을 제공하는 사이트들이 많다. 이 사이트들에 접속해보면 프록시 IP외 Transparent, Anonymous, High Anonymity라는 프록시 유형을 함께 병기하고 있다. 프록시의 기본적인 기능은 이미 설명했으므로 이번에는 프록시 유형에대해 알아보기로 하자.

    Transparent
    Transparent라는 이름에서 알 수 있듯 이 프록시 서버는 순수하게 캐쉬 서버나 사용자 요청을 대행하는 서버로만 동작한다. Transparent 프록시 서버는 클라이언트의 모든 정보를 서버에 전송하기때문에 프록시 서버를 거처 문서를 가져왔다는 것을 제외하면 클라이언트로 직접 요청하는 것과 별차이가 없다. 이러한 프록시 서버는 주로 로컬 넷트웍에 방화벽이 있는 경우 웹과 기타 서비스를 접속하기위해 두는 경우가 많다.


    Anonymous
    사용자의 IP와 일부 정보가 숨겨진다. 그러나 X_FORWARDED_FOR라는 HTTP 헤더나 CLIENT_IP라는 HTTP 헤더를 통해 사용자의 IP를 전송하기때문에 웹 베이스 프로그래밍에 능한 사람의 경우 직접 연결한 것처럼 IP를 포함한 대부분의 사용자 정보를 추출할 수 있다. 보통 대형업체에서 제공하는 프록시 서버가 여기에 해당된다.


    High Anonymity
    어떠한 사용자 정보도 전송되지 않으며, VIA와 같은 HTTP 헤더도 전송하지 않으므로 프록시를 경유했는지 어떤 IP에서 접속했는지를 알 수 없는 경우가 많다. 따라서 자신의 IP를 숨기는 경우 가장 좋은 방법은 High Anonymity 프록시를 사용하는 것이다. 문제는 이러한 형태의 서버를 운영하는 사람들은 대부분 개인이며, 운영자가 누구인지 모르기때문에 프록시 서버의 로그를 통해 어떤 정보를 추출해가는지도 모른다는 것이다. 따라서 이런 프록시를 통해서는 중요한 정보를 전송해서는 안된다.


여담1: 초기 인터넷은 국내에 자체 망이 구축되지 않아 국내에서 국내 사이트를 접속하는 경우에도 하와이를거쳐 미국/일본을 거쳐 연결했었기때문에 외국 사이트보다는 국내 사이트의 접속이 훨씬 느렸었다. 그후 국가 전산망이 구축됨으로서 국내 전산망의 속도는 비약적으로 향상됐지만 외국 사이트와의 접속은 국내 사이트에 비해 현저히 느렸었다. 이때 필자가 한 생각이 그러면 국내 사이트 중 외국과 직접 연결된 사이트나 캐쉬 서버를 통해 외국 사이트를 접속하면 속도가 빨라지지 않을까 하는 생각을 하게되었다. 그러나 인터넷에 대한 개념이 없던 시절이라 이러한 역할을 하는 서버를 찾기도 힘들었고, 국내 ISP에 문의를 해도 아는 사람이 한사람도 없었다(94년인지 95년경).

결국 Infoseek(당시 최고의 키워드 검색 엔진)으로 개념만 가지고 일주일 정도 인터넷을 뒤지던중 프록시 서버가 이러한 역할을 하는 서버라는 것을 알게되었고 DNS 조회를 통해 지금은 없어진 HNC.NET에 kiwi.hnc.net이라는 프록시 서버가 있다는 것을 알아냈다. 당시의 경이로움은 지금도 잊을 수 없다. 잘해야 200CPS를 넘지 못하던 넷트웍 속도(가르보에서 100K짜리 파일을 3일에 걸처 받은 적도 있다)가 20000~30000 CPS로 비약적으로 증가했다.


여담2: 필자는 컴퓨터로 그림을 그리는 것을 무척 싫어한다. 그림을 그리는 재주가 없기도 하지만 색감은 더더욱 없기때문이다. 따라서 대부분 캡처를 이용하지만 이번 팁처럼 어쩔 수 없이 그림을 그려야하는 경우에도 글로 때우는 경우가 많다.


주1: 처음 받은 파일이 깨진 파일인 경우 깨진 파일이 계속 받아지는 문제가 발생할 수 있다. 이 경우 해당 파일이 캐쉬에서 사라질때까지 기다리거나 다른 프록시를 이용해야 한다.


웹 사이트 공격하기 얼마전 낙서장 게시판에 정상적으로 동해 표기한 구글를 공격한일... (13676) 2005-08-26
공유기 사용시 자신의 IP 확인하기 얼마전 윈도우즈 게시판에 IP공유기 사용시 내 IP ... (20591)2005-08-26

QAOS.com에 게시된지 1년 이상된 자료와 관리자가 공개한 자료는 누구나 제한없이 읽을 수 있습니다.
그러나 QAOS.com의 자료를 퍼가는 것은 금지하고 있습니다.

이 정보가 유용하다고 생각되시면 QAOS.com과 많은 다른 사람들을 위해 퍼가기 보다는 링크로 알려주시기 바랍니다.

세상사는 이야기



RSS 구독 (익명 | 회원 | 강좌 | 포럼)
(C) 1996 ~ 2017 QAOS.com All rights reserved.