본문 바로가기

리눅스

프록시(Proxy)란

728x90

프록시(Proxy)란

프록시(Proxy)는 컴퓨터 네트워크에서 중개자 역할을 하는 중간 서버나 소프트웨어입니다. 이 중개자는 클라이언트와 서버 간의 통신을 중계하거나 필터링하여 다양한 목적을 위해 사용됩니다.

주요 목적

  1. 보안과 개인 정보 보호: 프록시는 클라이언트의 실제 IP 주소를 숨기고 대신 프록시 서버의 IP 주소를 사용하여 웹 사이트와 통신합니다. 이는 개인 정보 보호 및 익명성을 제공하고, 클라이언트의 실제 위치를 감춥니다.
  2. 캐싱: 프록시는 이전에 요청된 리소스의 사본을 저장하고 동일한 리소스를 여러 클라이언트에게 공유합니다. 이를 통해 네트워크 대역폭을 절약하고 로딩 시간을 단축시킵니다.
  3. 접근 제어 및 필터링: 기업이나 학교 네트워크에서 웹 사이트에 대한 액세스를 제어하고 부적절한 콘텐츠를 차단하기 위해 프록시를 사용합니다. 이를 통해 보안 및 정책 준수가 강화됩니다.
  4. 로드 밸런싱: 여러 서버 사이에 트래픽을 분산하고 서버의 가용성을 향상시키는 데 사용됩니다. 로드 밸런서 프록시는 클라이언트 요청을 적절한 서버로 전달합니다.
  5. 콘텐츠 필터링: 악성 콘텐츠, 바이러스, 스팸 또는 악의적인 웹 사이트로부터 사용자를 보호하기 위해 프록시는 트래픽을 검사하고 악의적인 콘텐츠를 필터링할 수 있습니다.

 

출처-https://kinsta.com/wp-content/uploads/2020/08/Forward-Proxy-vs-Reverse-Proxy-Servers.png

포워드 프록시(Forward Proxy)

  • 클라이언트 관점에서 중개: 포워드 프록시는 클라이언트 측에서 중개 역할을 합니다. 클라이언트가 외부 웹 서버나 리소스에 직접 액세스하지 않고 프록시 서버를 통해 액세스합니다.
  • 클라이언트 익명성 및 보안: 포워드 프록시는 클라이언트의 IP 주소를 숨깁니다. 이를 통해 클라이언트의 익명성을 보호하거나 방화벽을 통과하여 웹 필터링 및 보안을 통과할 수 있습니다.
  • 인터넷 액세스 관리: 기업 환경에서 포워드 프록시는 인터넷 액세스를 관리하고 제한하는 데 사용됩니다. 사용자의 웹 액세스를 모니터링하고 제한된 웹 사이트에 대한 액세스를 허용 또는 차단할 수 있습니다.
  • 인터넷 캐싱: 포워드 프록시는 반복되는 웹 리소스를 캐싱하여 대역폭을 절약하고 웹 페이지 로딩 시간을 단축할 수 있습니다.
728x90

리버스 프록시(Reverse Proxy)

  • 서버 관점에서 중개: 리버스 프록시는 서버 측에서 중개 역할을 합니다. 클라이언트가 리버스 프록시를 통해 리소스 서버에 액세스합니다.
  • 보안 및 로드 밸런싱: 리버스 프록시는 보안 및 로드 밸런싱을 위한 주요 용도로 사용됩니다. 클라이언트가 직접 서버에 액세스하지 않으며 리버스 프록시가 액세스를 관리하고 보안 및 로드 밸런싱을 제공합니다.
  • 로드 밸런싱: 리버스 프록시는 여러 서버에 트래픽을 분산하고 서버의 가용성을 향상시키는 데 사용됩니다. 클라이언트 요청을 적절한 서버로 전달합니다.
  • SSL 암호화 및 보안: 리버스 프록시는 SSL 암호화 및 디스크 방화벽과 같은 보안 기능을 제공합니다. 클라이언트와 서버 간의 통신을 안전하게 유지합니다.

출처-https://blog.apify.com/content/images/2022/02/traffic_proxy.jpg

일반적인 프록시 엔진의 주요 종류

  1. 웹 프록시 엔진: 웹 프록시는 웹 트래픽을 중계하고 관리하는 데 사용됩니다. 이러한 프록시는 HTTP 및 HTTPS 트래픽을 필터링, 로그 기록, 캐싱, 보안 검사 및 액세스 제어에 사용됩니다. 일반적인 웹 프록시 소프트웨어로는 Squid, Nginx, Apache HTTP Server와 같은 웹 서버가 있습니다.
  2. 리버스 프록시 엔진: 리버스 프록시는 클라이언트가 웹 서버로 요청을 전달하기 전에 중간에서 요청을 수신하고 서버에 전달합니다. 주로 로드 밸런싱, SSL 암호화, 보안, 웹 애플리케이션 방화벽 및 가용성 관리에 사용됩니다. 일반적인 리버스 프록시 소프트웨어로는 Nginx, Apache HTTP Server, HAProxy 등이 있습니다.
  3. 애플리케이션 프록시 엔진: 애플리케이션 프록시는 클라이언트와 서버 애플리케이션 간의 통신을 중계하고 보안 검사, 로드 밸런싱 및 액세스 제어를 제공합니다. 이러한 프록시는 애플리케이션 계층에서 작동하며 웹 애플리케이션 방화벽(WAF)과 같은 역할을 수행할 수 있습니다.
  4. 보안 프록시 엔진: 보안 프록시는 보안 검사와 필터링을 수행하여 악성 웹 사이트, 스팸, 바이러스 및 악의적인 트래픽을 차단합니다. 보안 프록시는 기업 네트워크 및 웹 서버에서 보안을 강화하는 데 사용됩니다.
  5. 캐싱 프록시 엔진: 캐싱 프록시는 반복되는 웹 리소스를 캐싱하고 클라이언트의 다시 요청에 대해 캐시된 리소스를 제공합니다. 이를 통해 대역폭을 절약하고 웹 페이지 로딩 시간을 단축시킵니다.
  6. FTP 프록시 엔진: FTP 프록시는 FTP(파일 전송 프로토콜) 트래픽을 관리하고 중계합니다. FTP 프록시는 클라이언트 및 서버 간의 파일 전송을 보다 효율적으로 관리할 수 있습니다.
  7. SOCKS 프록시 엔진: SOCKS 프록시는 네트워크 트래픽을 중계하고 TCP 및 UDP 트래픽을 다룰 수 있습니다. 이는 일반적으로 익명성 및 보안 터널링을 제공하는 데 사용됩니다.

 

참고URL

- Soma : Difference between Forward Proxy and Reverse Proxy in System Design

- What are the different types of proxies? : https://blog.apify.com/types-of-proxies/

 

728x90