코딩과 결혼합니다

[CS] Proxy Server 본문

2세/Computer Science

[CS] Proxy Server

코딩러버 2023. 10. 27. 18:21
728x90

📌Proxy란?

서버와 클라이언트 사이에서 대리로 통신을 수행해 주는 것을 프록시라하고 그 기능을 하는 서버를 프록시 서버라 부른다.

📌Proxy Server의 동작 원리

  • 브라우저에 웹 사이트 주소를 입력한다.
  • 프록시 서버가 사용자의 요청을 수신 받는다.
  • 프록시 서버는 액세스 하려는 웹 서버로 요청을 전달한다.
  • 웹 서버는 응답(웹 사이트 데이터)을 프록시 서버로 되보낸다.
  • 프록시 서버가 사용자에 응답을 전달한다.
요청한 웹 서버로 이동하기 전에 트래픽이 장치에서 프록시로 이동한다. 

 

 

📌Proxy Server의 종류

  • Forward 프록시
    [클라이언트 <ㅡ> 프록시 서버 - 서버]의 위치에 있다. 클라이언트가 요청을 전달하면 프록시 서버가 목적 사이트의 내용을 받아와서 전달을 '대신' 해준다.

    이 방식을 사용함으로 얻을 수 있는 이점
    1. 캐싱 기능 : 동일한 요청에 대한 응답을 캐싱하여, 다음에 동일한 요청이 있을 경우 캐시된 응답을 제공한다. 이를 통해 네트워크 대역폭을 절약하고, 응답 시간을 단축시킬 수 있다.

    2. 트래픽 제어 : 트래픽을 모니터링하고 필요한 경우 트래픽을 제한하거나 조절할 수 있어 서버의 부하를 관리할 수 있다.

    3. 보안 강화 : 외부로부터의 공격이나 악성 코드의 침투를 막을 수 있고, 보안 정책을 적용하여 안전한 통신을 유지할 수 있다.

    4. 익명성 보장 : 실제 IP 주소가 숨겨지고, 프록시 서버의 IP 주소가 노출되어 개인정보 보호와 익명성을 유지할 수 있다.

    5. 콘텐츠 필터링 : 특정 콘텐츠에 대한 접근을 제어하거나 차단할 수 있다.

  • Reverse 프록시
    [클라이언트 - 프록시 서버 <ㅡ> 서버 ]의 위치에 있다. 클라이언트가 프록시 서버에 데이터를 요청하면 프록시 서버는 내부망 서버에서 데이터를 받아와 클라이언트에게 전달해 준다.

    이 방식을 사용함으로 얻을 수 있는 이점
    1. 로드 밸런싱 : 여러 대의 서버에 요청을 분산시켜줄 수 있다. 이를 통해 트래픽 부하를 고르게 분산시키고, 서버의 성능을 향상시킬 수 있다. 또한, 서버의 장애 시 다른 서버로 자동으로 요청을 전달하여 가용성을 높일 수 있다.

    2. 보안 강화 : 직접 서버에 접근하는 것을 막아 서버의 보안을 강화할 수 있다. 외부로부터의 공격이나 악성 코드의 침투를 막는다.

    3. 캐싱 기능 :  서버의 부하를 줄이고, 응답 시간을 단축시킬 수 있다.

    4. SSL 오프로딩 : SSL 암호화를 처리하는 역할을 수행할 수 있어  서버의 성능을 향상시키고, SSL 인증서를 중앙에서 관리하여 효율적인 운영을 할 수 있다.

    5. 보안 및 모니터링 : 트래픽을 모니터링하고, 보안 정책을 적용할 수 있다. 트래픽 분석을 통해 이상 행위를 감지하거나, 웹 애플리케이션 방화벽 등의 보안 기능을 추가할 수 있다.

 

 

📌Proxy Server를 사용하는 이유

  1. 익명성 보장
  2. 보안 강화 
  3. 캐싱 기능 
  4. 접근 제어 
  5. 지리적 제한 우회
    - 특정 지역에서만 서비스되는 동영상이나 웹사이트에 접속하기 위해 proxy 서버를 사용할 수 있다.

 

📌프록시 서버 사용의 위험

  1. 개인정보 유출 : 프록시 서버 운영자가 사용자의 웹 트래픽 데이터를 볼 수 있어 신뢰할 수 없는 프록시 서버를 사용하거나 개인 정보를 입력하는 경우 개인정보가 유출될 수 있다.
  2. 보안 취약점 : 일부 프록시 서버는 보안 취약점을 가지고 있어 악의적인 공격자가 해당 서버를 이용하여 사용자의 컴퓨터에 악성코드를 전달하거나 개인정보를 탈취할 가능성이 있다.
  3. 불법 활동 : 사용자가 불법 콘텐츠에 접근하거나, 악성 소프트웨어를 배포하는 등의 위험을 야기할 수 있다.
  4. 신뢰할 수 없는 소스 : 프록시 서버는 다양한 소스에서 제공될 수 있으며, 이 중 일부는 신뢰성이 떨어질 수 있다.

'2세 > Computer Science' 카테고리의 다른 글

[CS] Caching  (0) 2023.11.03
[CS] MSA : MicroService Architecture  (0) 2023.11.02
[CS] 자료구조 : Java와 HashMap  (1) 2023.11.01
[CS] 자료구조 : Java와 ArrayList, LinkedList  (2) 2023.10.31
[CS] 자료구조 : Java와 Stack, Queue  (0) 2023.10.30