Server

Server) 프록시 서버가 도덕책 뭔데?

김코식 2023. 1. 7. 19:42


Proxy Server (프록시 서버)란?

프록시 서버는 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다.

서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 가리켜 프록시라하고

그 중계 기능을 하는 것이 프록시 서버 이다

프록시 서버 사용시 보안성, 성능, 안정성을 향상 시킬 수 있다.

 

프록시 서버는 Forward Proxy Server(포워드 프록시 서버)와 Reverse Proxy Server(리버스 프록시 서버)로 나누어진다.


Forward Proxy Server(포워드 프록시 서버) 란?

포워드 프록시 서버는 클라이언트 앞에 존재

1. 클라이언트가 인터넷 웹 서버에 요청한다.

2. 중간에서 그 요청을 프록시 서버가 가로챈다. 

3. 프록시 서버는 해당 요청을 웹 서버에게 다시 보내고 웹 서버에게 받은 응답을 클라이언트에게 전달한다

 

포워드 프록시의 사용 이유?

  • 접속 제한 회피
    - 포워드 프록시를 이용하면 사용자가 방문하는 사이트에 직접 연결하지 않고 프록시에 연결하여
      접속 제한(ex 정부, 학교 등의 조직의 방화벽)을 회피 할 수 있다. 
  • 특정 콘텐츠 제한
    - 사용자들이 특정 콘텐츠에 접속하는 것을 제한 할 수 있다.
      (ex. 학교에서 도박, 음란물 사이트 같은 곳을 포워드 프록시의 필터링 규칙으로 제한)
  • 캐싱 기능
    - 포워드 프록시는 캐싱 기능을 지원하기 때문에 동일한 요청에 대해 캐싱된 내용을 전달하여 성능 향상
  • IP 우회 빛 보안
    - 클라이언트에서 프록시 서버를 거쳐 요청을 보내면 서버는 클라이언트의 정보가 아닌 포워드 프록시의 정보를 받음
      따라서 서버측에 클라이언트의 정보를 숨길 수 있다

Reverse Proxy Server(리버스 프록시 서버) 란?

리버스 프록시 서버는 웹서버 앞에 존재

1. 클라이언트의 요청을 리버스 프록시에서 받는다.

2. 리버스 프록시에서 서버에서 요청을 보내고 응답을 받는다,

3. 리버스 프록시에서 적절한 응답을 클라이언트에 전달한다.

리버스 프록시 서버의 사용 이유?

  • 로드 밸런싱
    - 단일 서버가 과부화되는 것을 방지하기 위해 서로 다른 서버 간에 들어오는 트래픽을 균등하게 분배하는
      로드 밸런싱 솔류션을 제공한다.
    서버가 완전히 실패하는 경우 다른 서버가 트래픽을 처리하기 위해 나설 수 도 있다.

  • 공격으로부터 보호
    - 리버스 프록시를 사용하면 웹 사이트나 서비스에서 서버의 IP주소를 공개 할 필요가 없기 때문에
      DDoS 같은 표적 공격을 피할 수 있다.
      리버스 프록시 서버의 사이버 공격을 방어 할 수 있는 강력한 보안과 많은 리소스를 갖춘다.

  • GSLB(Global Server Load Balancing)
    - 웹 사이트를 전 세계 여러 서버에 배포할 수 있으며 리버스 프록시 서버는 클라이언트를 지리적으로 가까운 서버로      보낸다.
      이렇게 하면 요청 및 응답이 이동하는 데 필요한 거리가 줄어들어 로드 시간이 최소화 된다.
  • 캐싱
    - 콘텐츠를 캐싱할 수 있으므로 성능이 더 빨라진다.
  • SSL 암호화
    - 각 클라이언트에 대한 SSL: 통신을 암호화 하고 해독하는 것은 원본 서버에 계산 비용이 많이 들 수 있다. 

포워드 프록시 서버 통신과 리버스 프록시 서버 통신 차이점

 

1. 통신 대상

  • 포워드 프록시 서버는 내부망에서 클라이언트와 프록시 서버가 통신하여 인터넷을 통해 외부에서 데이터를 가져온다.
  • 리버스 프록시 서버는 내부망에서 프록시 서버와 내부망 서버가 통신하여 인터넷을 통해 요청이 들어오면 프록시 서버가 받아 응답한다

2. 감춰지는 대상

  • 리버스 프록시 서버는 프록시 서버 URL로만 접근이 가능하다. -> 본 서버의 IP 정보를 숨길 수 있는 효과를 얻는다.
  • 포워드 프록시는 내부망에서 인터넷 상에 있는 서버에 요청할 때 먼저 포워드 프록시를 호출하고 프록시가 서버에게 요청을 보내는데 서버에게 클라이언트의 정보를 숨길 수 있다.
    -> 서버 입장에서는 응답받은 IP가 포워드 프록시 서버의 IP이므로 크라이언트가 누구인지 알 수 없다

참고 자료

https://code-lab1.tistory.com/214

https://www.cloudflare.com/ko-kr/learning/cdn/glossary/reverse-proxy/

https://inpa.tistory.com/entry/NETWORK-%F0%9F%93%A1-Reverse-Proxy-Forward-Proxy-%EC%A0%95%EC%9D%98-%EC%B0%A8%EC%9D%B4-%EC%A0%95%EB%A6%AC