proxy-server

date
Sep 14, 2023
slug
proxy-server
author
status
Public
tags
Etc
summary
type
Post
thumbnail
category
updatedAt
Mar 7, 2024 11:45 AM

프록시 서버

클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 '프록시', 그 중계 기능을 하는 것을 프록시 서버라고 부른다.
 
프록시 서버 중 일부는 프록시 서버에 요청된 내용들을 캐시를 이용하여 저장해 둔다. 이렇게 캐시를 해 두고 난 후에, 캐시 안에 있는 정보를 요구하는 요청에 대해서는 원격 서버에 접속하여 데이터를 가져올 필요가 없게 됨으로써 전송 시간을 절약할 수 있게 됨과 동시에 불필요하게 외부와의 연결을 하지 않아도 된다는 장점을 갖게 된다. 또한 외부와의 트래픽을 줄이게 됨으로써 네트워크 병목 현상을 방지하는 효과도 얻을 수 있게 된다.

프록시 서버의 사용 목적

  • 익명으로 컴퓨터를 유지 (주로 보안을 위하여)
  • 캐시를 사용하여 리소스로의 접근을 빠르게 하기 위해. 웹 프록시는 웹 서버로부터 웹 페이지를 캐시로 저장하는 데 흔히 쓰인다.
  • 네트워크 서비스나 콘텐츠로의 접근 정책을 적용하기 위해. (이를테면 원치 않는 사이트를 차단)
  • 사용률을 기록하고 검사하기 위해 (이를테면 회사는 인터넷 이용을 파악)
  • 보안 및 통제를 뚫고 나가기 위해
  • 바이러스 전파, 악성 루머 전파, 다른 정보들을 빼낼 목적으로
  • 역으로 IP추적을 당하지 않을 목적으로
  • 전달에 앞서 악성 코드를 목적으로 전달된 콘텐츠를 검사하기 위해
  • 밖으로 나가는 콘텐츠를 검사하기 위해 (데이터 유출 보호)
  • 지역 제한을 우회하기 위해
 

장점

개인정보를 보호할 수 있다

프록시 서버 없이 클라이언트가 서버에 요청 시 본인의 IP 주소가 노출되는데, 프록시 서버를 사용 시 서버측에서 나의 IP가 아닌 프록시 서버의 IP를 보게 된다.
즉, IP를 숨길 수 있다.

캐시를 사용해서 속도가 향상된다

프록시 서버는 웹페이지를 가져올 때 자신의 DB에 최근 데이터를 저장하는데, 이것을 Cache라 한다.
이렇게 될 시, 같은 요청이 들어오면 Cache자원을 반환하여 서비스의 속도를 높이고 대역폭도 줄일 수 있다.

로그를 기록, 관리할 수 있다

서버 측에선 클라이언트의 기록대신 프록시 서버의 기록이 있지만, 프록시 서버에겐 클라이언트의 기록이 남아있다. 이 기록들을 보면 어떤 IP에서 어떤 IP로 얼마나 접속해 있는지 확인할 수 있고, 특정 IP가 방문할 수 있는 웹사이트도 제한할 수 있어서 회사에서 많이 사용한다.

접속을 우회할 수 있다

특정 사이트에서 IP를 검사해 한국에서의 접속을 차단하는 경우가 있는데, 이런 경우 프록시 서버를 사용해 접속 시 다른나라에서 접속한 것처럼 우회할 수 있다.
 

프록시 종류

1. 포워드 프록시(Forward Proxy)

보통 말하는 프록시가 바로 이 포워드 프록시를 말한다.
Client와 Server 사이에 위치하여 요청을 중계하며, 요청과 응답은 Proxy Server를 거친다.
클라이언트를 감추는 효과가 있다.
클라이언트의 대신 프록시 서버가 목적 서버에 통신해주는 구성을 "포워드 프록시"라고 한다.
 포워드 프록시의 경우 아래와 같이 프록시 서버가 외부 Web 서버와 통신을 한다. 그러므로 클라이언트는 프록시 서버만을 통해 정보를 얻게 된다. 따라서 Web 서버쪽에서는 프록시 서버를 통한 액세스 로그가 남는다. 그리고 포워드 프록시의 경우는 어떤 프록시 서버를 경우하도록 할 것인가는 클라이언트가 설정할 수 있다. 참고로 윈도우10의 경우 [Winodws 메뉴] > [설정] > [네트워크와 인터넷] > [프록시]에서 설정할 수 있다. 장점 1. 캐시 저장(액세스 고속화) 프록시 서버에 캐시를 저장할 수 있다. 다시 동일한 페이지를 리퀘스트 했을 때에는 캐시에 남아 있는 정보를 클라이언트에게 준다. 이것으로 사이트에 접속하는 속도가 빨라진다. 2. URL 필터링  외부의 액세스는 프록시 서버를 경유하므로 사용자 전원의 외부 웹 사이트로의 액세스를 필터링할 수 있다. 아래의 예는, http://example1.co.jp에 에 액세스하려고 해도 해당 사이트로의 리퀘스트가 보내지지 않는다(에러용 페이지가 표시되는 등 설정에 따른 화면이 표시된다).
 

2. 리버스 프록시 

포워드 프록시와 달리 Web 서버쪽에 위치하여 클라이언트의 접근을 최초로 받아 리퀘스트에 해당하는 Web 서버에 배분해주는 역할을 한다. 아래는 리버스 프록시의 이미지이다.
 위의 경우, 클라이언트에서 액세스를 프록시 서버에 집약해서 URL에 따라 리퀘스트를 받을 Web 서버가 바뀌도록 설정하고 있다. 이 때 클라이언트의 입장에 있어서는 프록시 서버가 Web 서버와 같은 동작을 하므로 Web서버가 여러 개 존재하는 것을 은폐할 수 있는 것도 리버스 프록시의 특징이다.
포워드 프록시와 마찬가지로 요청과 응답이 Proxy Server로 이동하는데, 포워드 프록시와 다르게 Server들이 주로 내부망으로 구성되며 프록시에게만 연결을 허용한다. 즉, 서비스를 위한 보안 채널을 구축한다.
이런 경우 Client가 Server에 직접 접근이 불가능하므로, Reverse Proxy에서 요청을 적극적으로 중계하는 Load Balancing의 역할을 수행하기도 한다.
서버를 감추는 효과가 있다.
리버스 프록시의 장점부담 분산 설정으로 정적 콘텐츠와 동적 콘텐츠의 보는 곳을 나눔으로써 메모리 사용량의 효율화를 할 수 있다. 로드 밸런스와 병용하면 더욱 부담을 분산할 수 있다.캐시의 저장 포워트 프록시와 동일하게 동일한 데이터를 얻을 때에 프록시 서버가 저장했던 내용을 돌려준다.세큐리티 대책, 바이러스 대책 통신시 프록시 서버에 집약되므로 프록시 서버 내에 세큐리티 대책, 바이러스 대책을 구현하여 Web 서버로의 부정 액세스, 사용등을 방지할 수 있다.