on&on
[Network] proxy 서버란? 본문
목차
proxy 서버란?
proxy 서버를 사용하는 이유
proxy 서버의 유형
proxy의 문제점
proxy와 VPN의 차이점
📍 proxy 서버란?
proxy는 '대리'라는 의미를 가지고 있다. 즉, 프록시 서버란 클라이언트와 다른 서버 간의 중간 다리 역할을 수행하는 서버로, 클라이언트가 프록시 서버에 요청을 보내면 프록시 서버는 해당 요청을 대신하여 다른 서버로 전달하고 그 응답을 클라이언트에게 전달한다. 이를 통해 클라이언트는 직접 다른 서버에 연결하지 않고도 프록시 서버를 통해 리소스를 요청하고 응답받을 수 있다.
📍 proxy 서버를 사용하는 이유
프록시 서버를 사용하는 목적은 여러가지가 있다.
1. 보안
만약 클라이언트에서 서버 주소로 요청을 보낼 경우 서버의 주소가 쉽게 노출되고, 이를 통해서 다른 사용자가 서버로 접근하는 것이 가능해진다. 하지만 프록시 서버를 통해 이를 거쳐서 서버로 요청을 한다면 다른 사용자가 서버 주소를 알아내는 것은 쉽지 않을 것이다. 즉, 서버의 주소를 숨김으로써 외부의 접근을 막을 수 있게 된다.
2. 캐시 저장
만약 서버에 같은 값을 요청하고 같은 응답값을 받을 때, 이러한 값을 캐시에 저장한다면 서버에 재요청을 하지 않고 빠르게 데이터를 로드하는 게 가능하다. 캐시를 프록시 서버에 저장하고 프록시 서버에 요청을 할 경우 프록시 서버의 캐시에서 데이터를 보내주어 속도를 높이는 것이 가능해진다.
3. 접속 우회
위에서 프록시 서버를 사용함으로써 서버의 주소를 감출 수 있다고 했는데, 이는 어디에서 접속했는지도 숨기는 것이 가능하다.
또한, 프록시 서버는 여러대 연결시키는 것이 가능하다. 클라이언트의 IP를 숨기기 위해 여러 프록시 서버를 경유하는 것을 Proxy Chaining이라고 하는데, 흔히 해커들이 IP주소를 숨기고 공격할 때 사용한느 수법으로 알려져 있다.
📍 proxy 서버의 유형
프록시 서버의 위치와 역할에 따른 분류
포워드 프록시(forward proxy)
- 포워드 프록시란 클라이언트가 인터넷에 직접 접근하는 게 아닌 포워드 프록시 서버가 요청을 받고 인터넷에 연결하여 결과를 클라이언트에게 전달하는 것이다.
- 클라이언트가 요청하는 End Point가 실제 서버 도메인이며 프록시 서버는 둘 사이 통신을 담당한다.
- 요청 받는 서버는 포워드 프록시 서버를 통해서 요청을 받으며 클라이언트 정보를 알 수 없다.
리버스 프록시(reverse proxy)
- 리버스 프록시란 클라이언트가 인터넷에 데이터를 요청하면 리버스 프록시가 이 요청을 받아 내부 서버에서 데이터를 받은 후 클라이언트에게 전달하는 것이다.
- 내부 서버에 직접적으로 접근하는 것을 막고 리버스 프록시를 통해 데이터베이스에 접근한다.
- 내부 서버에 대한 설정으로 로드 밸런싱이나 서버 확장에 유리하다.
- 클라이언트가 요청하는 End Point가 프록시 서버의 도메인이며 실제 서버의 정보는 알 수 없다.
- 클라이언트는 리버스 프록시 서버에게 요청하기 때문에 실제 서버의 정보를 알 수 없다.
프록시 서버의 프로토콜과 기능에 따른 분류
HTTP 프록시
- HTTP 프록시 서버는 일반적으로 웹 페이지에 적합하다.
- 브라우저용 HTTP 프록시를 사용하면 해당 브라우저를 사용하는 모든 트래픽이 해당 프록시를 통과하도록 라우팅 처리된다.
SOCKS 프록시
- HTTP 프록시 같은 웹 트래픽에서 나아가 애플리케이션 수준까지 작동 가능하다.
- 모든 유형의 트래픽을 처리할 수 있지만 HTTP 프록시에 비해 속도가 느리다.
투명 프록시
- 사용하는 사람이 프록시 서버의 존재를 알지 못하도록 하는 것이다.
- 예를 들어, 회사 내 직원의 활동을 감시하거나 특정 페이지에 대한 접근을 제한하려고 할 때나 대역폭을 절약하기 위해 해당 프록시를 사용하기도 한다.
📍 proxy의 문제점
- 프록시 서버는 트래픽을 암호화하지 않는다. 그렇기 때문에 인터넷 서비스 제공 업체 등 같은 경우로부터 사용자를 보호하는 것이 불가능하다. 외부 프록시 서버를 사용한다면 데이터를 남용하지 않도록 주의해야 한다.
- 이러한 프록시 서버의 보안 문제 때문에 나온 것이 바로 VPN이다.
📍 proxy와 VPN의 차이점
VPN(Virtual Private Network, 가상 사설망)이란?
VPN이란 원격 서버를 통해 인터넷 트래픽을 라우팅하고 실제 IP 주소를 가상 IP 주소로 대체함으로써 웹사이트 측에서 사용자의 실제 IP 주소와 위치를 확인할 수 없도록 하는 것이다.
VPN을 이용하면 다양한 플랫폼에서 인터넷과 기기 사이의 트래픽을 암호화할 수 있기 때문에 프라이버시와 보안을 확보하는 것이 가능하다.
proxy와 VPN의 차이점
프록시 서버 | VPN |
---|---|
트래픽을 완벽하게 암호화할 수 없으므로 중요 정보 관리 시에는 부적절 | 운영체제 수준에서 동작하기 때문에 브라우저 백그라운드 앱에서 발생하는 모든 트래픽 암호화 가능 |
데이터를 암호화하지 않기 때문에 속도가 빠름 | 데이터가 암호화되기 때문에 속도 저하 (인터넷 연결 및 검색 속도 개선하는 방법이 있음) |
많은 프록시 서버가 무료로 제공됨 | 대부분의 VPN 서비스는 유료 무료 VPN은 데이터 사용량이 제한되고 사용자 정보를 무단으로 수집하는 경우가 존재하기 때문에 위험성이 있음 |
연결 중단이 발생하기도 함 | 상대적으로 안정적인 연결 상태 |
참고
'Network' 카테고리의 다른 글
[Network] OSI 7계층 모델과 TCP/IP 모델 (0) | 2023.06.18 |
---|---|
[Network] SOP(Same-Origin Policy)와 CORS(Cross-Origin Resource Sharing) (0) | 2023.06.16 |