본문 바로가기

네트워크/WEB 이야기

Proxy 이야기 (1) - 프록시의 개념


인터넷과 컴퓨터가 생활에 밀착되어 있는 요즘
프록시라는 단어는 굳이 컴퓨터를 전공하지 않아도, 많은 이들이 알고 있는 단어다.

프록시가 과연 어떤 것인지, 그리고 프록시에 대해 조금 더 자세히 알아보는 시간을 가져볼 예정이다.

이번 포스팅은 프록시의 개념 및 종류, 어떤 원리로 작동되는지에 대한 포스팅이다.


먼저 proxy의 사전 적 의미는,

대리인(agent)
웹 클라이언트의 요청 URL을 해당 서버가 아닌 프록시 서버로 요청



란 의미를 가지게 된다. 말 그대로 대리인, 웹 브라우져에서 원하는 주소를 치고 요청 (Request)를 보냈을 때, 내 IP주소를 가지고 바로 그 웹서버로 접속되는 것이 아닌 '프록시 서버'로 요청을 전송하고 프록시 서버는 대리인을 데리고 웹서버에 가서 데이터를 주고 받은 뒤 다시 '프록시 서버'를 통해 내 브라우져로 데이터 들을 가져오게 된다.

쉽게 그림으로 이해하자면,




클라이언트인 내 웹브라우져에서 프록시서버를 설정 한 후 네이버로 요청을 했을 때 내 웹브라우져에는 네이버 홈페이지가 뜨지만, 실제적으로 프록시서버와 네이버에서 모든 요청과 응답을 처리 한 후 프록시 서버에서 내 컴퓨터에 받은 응답을 뿌려주게 된다. 때문에 프록시를 '대리인'으로 설명한다.

그렇다면 왜 굳이 이러한 프록시라는 것을 사용하는 것일까?

프록시 서버를 사용하는데는 대략 2가지 정도의 큰 목적이 있다.

첫번째는, 옛날 지금처럼 인터넷이 빠르지 않았을 때 프록시 서버를 사용하여 인터넷 제공업체등에서 고객들에게 프록시서버를 통해 웹서핑을 하도록 만들게 되면 ( 투명캐시 라는 기술을 통해 고객들이 프록시서버를 설정하거나 사용하는지도 모르게 가능 함 ) 프록시서버에서는 자주 가는 웹사이트에 대한 캐시 들이 쌓여있고 좀더 빠르게 인터넷이 가능하게 되는 이점이 있다.

다른 목적으로는, 익명성 혹은 막혀있는 웹사이트를 우회하여 접속할 수 있다는 이점 때문인데, 내부 네트워크 및 방화벽으로 인해 P2P 사이트, 한국 IP들을 막아놓은 사이트(예를 들면 친북사이트나, 중국, 일본의 몇사이트 등) 등에 접속이 가능한데, 먼저 익명성에 대한 이야길 그림을 통해 하면,


위와 같이 실제 내 아이피는 NAT서버를 통해 밖으로 123.123.123.123 이라는 주소를 가지고 패킷을 주고받게 된다. 하지만 중간에 프록시 서버를 거치게 되면 실제 내가 접속을 원하는 서버에는 프록시 서버가 대신 왔다갔다 하므로, 내 123.123.123.123 이란 아이피는 남지 않게 되며, 익명의 프록시 서버의 IP주소로 접근이 되었다고 뜨게 된다.


테스트를 해보니 나는 고정IP를 사용하는데 처음보는 210.107.100.251이라는 프록시서버 IP로 내 글이 등록이 되는 것을 알 수 있다.
또한 이렇듯 접근이 프록시 서버 IP로 접근이 되기 때문에, 데이콤이나 KT에서 제공하는 프록시 서버말고, 외국에 일본이나 중국, 미국등 공개 프록시 서버로 접속을 한 후 친북 사이트 혹은 한국은 막혀있는 여러 사이트들을 접근하게 되면, 접근 받은 웹서버는 일본이나 중국, 미국에서 접속을 했구나 하면서 차단이 풀리게 된다. (물론 한국이 접근이 되어있는 사이트에 접속하는 것을 권하진 않는다. 프록시 서버를 사용하더라도 공개 프록시 서버의 경우에는 낮은 레벨의 프록시 서버이기 때문에 실제 IP를 역추적하는 것이 가능하다. 이 부분은 두번째 포스팅에서 언급하도록 하겠다.)


프록시 서버에 대한 간단한 개념은 잡았으니, 다음 포스팅에서는 실제 방화벽을 우회하는 것이나, 레벨 등에서 포스팅 할 예정이다.