프록시 서버란? (feat. 피들러가 세션 수집하는 원리)

프록시 서버는 클라이언트와 서버의 중간에서 트래픽을 대신 전달해 주는 서버입니다. 프록시 서버를 사용하면 리소스 캐싱, 로드 밸런싱, 보안 강화 등 장점이 있는 반면 통신 오류, 속도 지연 등 단점도 존재합니다.

프록시(Proxy) 서버란?

프록시는 클라이언트와 서버 사이에 있는 중간 서버입니다. 클라이언트 → 서버로 통신하던 것이 프록시 서버를 사용하면 클라이언트 → 프록시 서버 → 서버 흐름으로 바뀝니다. 서버가 클라이언트 요청에 응답할 때도 서버 → 프록시 서버 → 클라이언트로 거칩니다.

 

웹 트래픽 디버깅을 해보셨다면 피들러(Fiddler)라는 툴을 아실 겁니다. 피들러가 하는 일이 패킷을 수집해서 사용자가 볼 수 있는 형태로 저장하고, 패킷의 내용과 통신 결과를 보여주는 건데요. 이것이 가능한 이유가 피들러가 클라이언트와 서버 가운데에서 프록시 서버 역할을 하기 때문입니다. 

 

프록시 서버는 http 프록시 (http 요청 및 응답 처리), socks 프록시 (tcp, udp 등 트래픽 처리), 리버스 프록시 (웹 서버 앞단에서 로드 밸런싱 및 캐싱 서비스 제공) 등 여러 유형이 있습니다.

프록시 서버 사용 장점

프록시는 중개자 성격을 갖는 서버입니다. 그렇다면 굳이 패킷을 최종 목적지로 보내기 전 중간 단계를 거치게 만드는 이유는 무엇일까요.

 

1. 자주 액세스하는 리소스를 캐싱할 수 있습니다.

클라이언트의 요청이 프록시 서버에 캐싱되어 있으면 굳이 쵲오 목적지 서버에 요청할 필요가 없어집니다. 네트워크 성능 측면에서 응답도 빨라지고 서버 부하도 줄어듭니다.

 

2. 트래픽을 필터링, 통제할 수 있습니다.

콘텐츠에 대한 액세스를 차단할 수 있습니다. 맬웨어, 바이러스 같은 트래픽도 필터링 합니다. 회사에서 프록시 서버를 이런 식으로 활용할 수 있습니다.

 

3. 클라이언트의 IP를 숨길 수 있습니다.

최종 서버 입장에선 프록시 서버가 클라이언트인 셈입니다. 그러니 A, B, C에서 동일한 프록시 서버를 이용하면 서버 입장에선 A, B, C 컴퓨터를 식별하지 못합니다. 이런 특성 역시 회사 입장에선 보안상 이점입니다.

프록시 서버 사용 단점

1. 속도가 느려질 수 있습니다.

아무래도 중간 서버를 한 단계 거치기 때문입니다.

 

2. 통신 오류가 발생할 수 있습니다.

실제 클라이언트와 서버에 문제가 없더라도, 프록시 서버가 다운되거나 구성 요소가 변경되는 등 이슈가 있으면 통신에 문제가 발생할 수 있습니다.

 

3. 일부 응용 프로그램의 경우 호환성 문제가 있을 수 있습니다.

 

4. 신뢰할 수 없는 프록시 서버를 사용하는 경우 트래픽을 수집 당할 수 있습니다.

프록시는 그 자체로 사용자의 트래픽을 가로채기 때문입니다.

 

5. 서버 구성이 복잡해집니다.

회사 입장에선 프록시 서버를 운영하면 자연스럽게 유지 관리 비용이 투입됩니다.

윈도우 PC 프록시 서버 사용 방법

윈도우 검색창에 프록시를 치면 프록시 설정 변경이 있습니다.

 

프록시 설정 변경

 

이 시스템 설정에 들어가면 자동 프록시 설정과 수동 프록시 설정이 모두 가능합니다.

 

자동 프록시 설정

 

 

클라이언트와 서버 모두 정상인 거 같은데 통신에 문제가 발생할 땐 프록시 서버를 한 번 확인해보세요. 프록시 서버를 사용하고 있다면 프록시 서버에 문제가 있기 때문일 수도 있습니다. 프록시 서버를 꺼보고 통신을 해보시면 확인할 수 있습니다.

반응형

댓글

Designed by JB FACTORY