본문 바로가기

기초이론/네트워크

프록시(Proxy)

프록시(Proxy)

  •  대리라는 의미를 가지고 있다.
  • 보안상의 이유로 직접 통신할 수 없는 사이에서 통신을 할 경우에 중계기로써 대리로 통신을 수행하는 기능을 말한다.
  • 두 PC가 통신을 할 때 직접 하지 않고 중간에서 대리로 통신을 하는 것을 ‘프록시’라고 하고, 중계 역할을 하는 것을 프록시 서버’ 라고 부른다.
    • 즉, 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것을 '프록시', 그 중계 기능을 하는 것을 '프록시 서버' 라고 부른다.
  • 프록시는 서버 위치에 따라 두 종류로 나뉜다.
    • 포워드 프록시(Foward Proxy)
    • 리버스 프록시(Reverse Proxy)
  • 추가로 오픈 프록시도 존재하는데, 이는 간단하게 다뤄볼 것이다. 
    • 오픈 프록시(Open Proxy)

포워드 프록시(Foward Proxy)

  • 클라이언트가 인터넷에 접근하고자 할 때, 포워드 프록시 서버가 요청을 받고 인터넷에 연결하여 결과를 클라이언트에 전달해준다.
  • 서버와 클라이언트 사이에서 요청과 응답을 대신 처리해주는 것이며, 과정은 다음과 같다.
    1. 클라이언트에서 프록시 서버로 데이터 전송
    2. 프록시 서버에서 웹 서버로 데이터 요청
    3. 웹 서버에서 프록시 서버로 데이터 응답
    4. 프록시 서버에서 클라이언트에게 데이터 전송
  • 클라이언트가 목적지 서버의 주소를 기반으로 하여 데이터를 요청하고, 프록시 서버가 그 요청을 받아 목적지 서버에 대신 데이터를 요청하여 자원을 받은 후에, 최종적으로 클라이언트에게 데이터를 전달해준다..
    • ex) 회사 내부 인트라넷에서 다른 서버에 데이터를 요청할 때에 프록시 서버를 통해 요청하는 것
  • 다루기 쉬우며 비용이 저렴하여 기업 환경에 많이 사용된다.
  • 클라이언트는 최종적으로 실제 서버의 도메인을 요청하는 것이므로 요청한 클라이언트의 IP를 숨길 수 있다.

포워드 프록시


- 포워드 프록시(Foward Proxy)의 사용 목적

  • 성능 향상
    1. 프록시 서버 중 일부는 서버에 요청된 내용을 캐시로 사용해 저장해둔다. 이로 인해 서버에 재요청을 할 필요가 없어지므로 전송 시간을 절약할 수 있다.
    2. 또한 이로 인해 외부 트래픽을 줄임으로써 네트워크 병목 현상도 방지할 수 있다.
      • 트래픽이란 서버에서 동작하는 서비스에 클라이언트가 접속하여 발생되는 데이터의 전송 수치를 말한다. 이러한 트래픽의 양이 지나치게 많아지면 서버에 과부하가 오며 시스템상 장애를 일으킬 수 있다.
      • 네트워크 병목 현상이란 허용된 용량보다 과도하게 많은 데이터를 전달하는 경우에 성능이 저하되는 현상이 발생하는 것을 말한다.
  • 보안
    1. 서버가 응답 받은 요청을 어느 클라이언트가 보냈는지 알지 못하게 하여 익명성을 보장한다.
    2. 프록시 서버를 통해 특정 사이트만 접근이 가능하도록 제한을 걸 수 있다.
    3. 프록시 서버를 통해 클라이언트의 IP를 숨길 수 있다.
  • 접속 우회
    1. 접근할 수 없는 주소에 접근할 수 있다.
      • 내 IP가 1.1.1.1 이고, 접근하고자 하는 곳에서는 2.1.1.1에 대한 IP만 허용한다고 가정해보자.
      • 그러면 나는 IP가 2.1.1.1 을 가진 프록시 서버에게 접근하고자 하는 사이트의 데이터를 요청한다.
      • 이 프록시 서버로 인해 나는 IP가 2.1.1.1로 해당 사이트에 접근하게 되고, 결과적으로 해당 사이트의 정보를 얻을 수 있는 것이다.

리버스 프록시(Reverse Proxy)

  • 클라이언트가 인터넷에 데이터를 요청하면 리버스 프록시가 해당 요청을 받고 내부 서버에서 데이터를 받아 클라이언트에게 전달한다.
  • 리버스 프록시 서버를 DMZ에 위치시키고 실제 서버는 내부망에 위치시킨 후 서비스하는 것이 일반적이다.
    • DMZ란 내부와 외부 네트워크 사이에 위치하는 구간으로 웹 서버, 메일 서버, FTP 서버 등의 외부 서비스를 제공하는 서버가 위치하는 곳이다.
  • 클라이언트는 최종적으로 리버스 프록시의 도메인을 요청하는 것이므로 실제 서버의 IP를 숨길 수 있다.

리버스 프록시


 

- 리버스 프록시( Reverse Proxy)의 사용 목적

  • 성능 향상
    1. 캐시 데이터를 사용함으로 인해 캐싱되어 있는 데이터는 재요청을 할 필요가 없어진다.
  • SSL 암호화
    1. SSL(Secure Sockets Layer)란 암호화 기반 인터넷 보안 프로토콜을 말한다.
      • 인터넷 통신의 개인 정보 보호, 인증, 데이터 무결성을 보장하기 위해 NetScape가 1995년 처음 개발했다.
      • 1999년에 TLS로 업데이트 되었다.
      • ex) HTTPS
    2. 리버스 프록시를 사용하면 들어오는 요청을 모두 복호화하고, 나가는 응답을 암호화해준다.
      • 본래 서버의 부담을 줄여줄 수 있다.
      • 리버스 프록시를 통해 암호화,복호화 비용을 절감할 수 있다.
      • 클라이언트와 안전한 통신을 할 수 있다.
  • 로드 밸런싱(Load Balancing)
    1. 서버가 처리해야 할 업무 혹은 요청을 여러 대의 서버로 나누어 처리하는 것을 의미한다.
    2. L4 로드 밸런서와  L7 로드 밸런서가 가장 많이 활용된다.
      • L4 밸런서란 네트워크 계층(IP, IPX)이나 전송 계층(TCP, UDP)의 정보(IP 주소, 포트번호, MAC 주소..)를 바탕으로 로드를 분산하는 것을 말한다.
      • L7 밸런서란 애플리케이션 계층(HTTP, FTP, SMTP) 에서 로드를 분산하는 것을 말한다. 또한 특정한 패턴을 지닌 바이러스 감지해 네트워크를 보호할 수 있으며, Dos/DDos 와 같은 비정상적인 트래픽을 필터링할 수 있어 네트워크 보안 분야에서도 활용되고 있다.
    3. 한 서버에 장애가 발생했을 때, 다른 서버를 통해 업무를 이어서 처리할 수 있다.

로드밸런싱


  • 보안
    1. WAS를 DMZ 구간에 놓고 서비스하게 되면 WAS가 해킹당할 경우 DB 서버까지 해킹당할 수 있다는 문제가 발생할 수 있다. 이를 방지하기 위해 리버스 프록시 서버를 DMZ에 두고, 실제 서비스하는 서버는 내부망에 위치시켜서 서비스한다.
      • WAS란 Web Application Server의 약자로, DB 조회나 다양한 로직 처리 등을 수행한다.

오픈 프록시(Open Proxy)

  • 누구나 접근이 가능한 프록시 서버이다.
  • 사용자, 목적등에 상관없이 임의의 네트워크 포트와 프로토콜 연결을 지원한다.
  • 하나의 사용자가 여러 서버를 동시에 사용하여 네트워크 공격을 할 수 있다.
  • 오픈 프록시를 사용하면 로그를 보관하지 않는 경우가 많기에 신원 조회가 불가능하다.
  • 스패머와 해커들이 즐겨 사용하는 것으로, 네트워크 보안에 매우 위협적이다.

 

 

'기초이론 > 네트워크' 카테고리의 다른 글

로드 밸런싱(Load Balancing)  (0) 2022.06.23