Networkmedium면접 빈도: medium

Proxy Server

Proxy Server (프록시 서버)

📝 개념 정의

클라이언트에서 서버로 접속 시 직접 접속하지 않고 중간에 대신 전달해주는 서버

핵심:

  • 클라이언트 ↔ Proxy Server ↔ 실제 서버
  • 캐시 역할
  • 보안 및 필터링

🔄 동작 원리

1. 요청

사용자가 웹 브라우저에서 도메인 입력


2. 전달

프록시 서버로 요청 전달


3. 확인

프록시 서버 내 페이지 보유 여부 체크


4-A. 보유한 경우

최신 버전 확인 → 필요 시 갱신


4-B. 보유하지 않은 경우

실제 서버와 연결 → 페이지 가져옴


🎯 Proxy Server가 필요한 이유

1. 보안 (필터링)

서버 IP 숨김

Client → Proxy Server → Real Server

장점: ✅ 서버 주소 노출 방지 ✅ 익명 사용자 접근 차단 ✅ 프록시 방화벽 역할


방화벽 (Firewall)

보안 규칙 기반 네트워크 트래픽 모니터링 및 제어

특징:

  • 신뢰 내부 네트워크 ↔ 신뢰 불가 외부 네트워크 장벽

프록시 방화벽

세션 정보 유해성 검사

동작:

  1. 출발지 → 방화벽 세션
  2. 방화벽 → 목적지 세션
  3. 세션 간 정보 전달 전 검사

특징:

  • 패킷 필터보다 느림
  • 더 많은 검사 가능
  • 프로토콜 변경 등 추가 기능

2. 분산 처리 (캐시 & 로드 밸런싱)

캐시 사용으로 전송 시간 절약

장점: ✅ 재요청 시 서버 접속 불필요 ✅ 외부 트래픽 감소 ✅ 병목 현상 방지


3. 우회

클라이언트 IP 숨김

Client 1, 2, 3 → Proxy Server → Internet

장점: ✅ 클라이언트 IP 노출 방지 ✅ 보안 취약점 커버 ✅ 특정 서버 우회 가능


4. ACL (사이트 접근 정책)

Access Control List

기능:

  • Proxy Server 접속 범위 설정
  • 사이트 접근 정책 정의
  • 허가 목록 관리

🔀 Proxy Server 종류

Forward Proxy

클라이언트 → Forward Proxy → 인터넷

Client → Forward Proxy → naver.com

특징: ✅ 통상적으로 "프록시"라 부름 ✅ 클라이언트가 직접 인터넷 접근 X ✅ 로컬 디스크에 데이터 저장 ✅ 사용 인식 가능 (브라우저 설정 필요)

장점:

  • 대역폭 사용 감소
  • 접근 정책 구현 쉬움
  • 비용 저렴
  • 웹 사용 환경 제한 가능 (기업 환경)

Reverse Proxy

클라이언트 → Reverse Proxy → 내부 서버

Client → Reverse Proxy → Internal Server

Reverse 의미:

  • "역전, 거꾸로" ❌
  • "배후, 뒷쪽" ✅

특징: ✅ 서버 쪽 프록시 ✅ 클라이언트 인식 불가 ✅ 내부 서버 정보 알 필요 없음

장점:

  • 보안: 내부 서버 직접 노출 방지
  • DMZ 활용: 프록시는 DMZ, 실제 서버는 내부망
  • 로드 밸런싱: 내부 서버 설정 유리
  • SSL 암호화: 프록시에서 암호화/복호화 처리

DMZ (DeMilitarized Zone)

내부망과 외부망 사이 구간

위치 서버:

  • 메일 서버
  • 웹 서버
  • FTP 서버

목적:

  • 내부 서버(WAS) 직접 접근 차단
  • DB 접근 방지 → 해킹 방지

로드 밸런싱 (Load Balancing)

요청 응답 처리 시 서버 부하 분산

Client → Proxy (부하 9)
           ↓
    Server1 (3) + Server2 (3) + Server3 (3)

방법:

  • Scale-out: 서버 추가 증설
  • Scale-up: 기존 서버 성능 업그레이드

📊 Forward vs Reverse Proxy

| 특징 | Forward Proxy | Reverse Proxy | |------|---------------|---------------| | End Point | 실제 서버 도메인 | 프록시 서버 도메인 | | 감추는 대상 | 클라이언트 | 서버 | | 통신 대상 | 클라이언트 ↔ Proxy | Proxy ↔ 내부 서버 | | 사용 인식 | O | X | | 주요 용도 | 캐싱, 접근 제한 | 보안, 로드 밸런싱 |


❓ 면접 질문 예시

Q1. 프록시 서버를 설명하고 사용 사례는?

답변: 프록시 서버란 서버 앞단에 둬서 캐싱, 로깅, 데이터 분석을 서버보다 먼저 하는 서버입니다. 포트 번호를 바꿔서 사용자가 실제 서버의 포트에 접근하지 못하게 할 수 있으며 DDOS 공격을 차단하거나 CDN을 프록시 서버로 달아서 캐싱 처리를 용이하게 할 수 있습니다. nginx로 Node.js 서버 앞단에 둬서 버퍼 오버플로우를 해결하거나 CloudFlare를 둬서 캐싱, 로그 분석 등을 하는 사용 사례가 있습니다.

Q2. Forward Proxy와 Reverse Proxy의 차이는?

답변: Forward Proxy는 클라이언트가 인터넷에 직접 접근하지 않고 프록시를 통해 접근하여 클라이언트를 감춥니다. 주로 캐싱과 접근 제한에 사용됩니다. Reverse Proxy는 클라이언트 요청을 받아 내부 서버로 전달하여 서버를 감춥니다. 주로 보안과 로드 밸런싱에 사용됩니다.

Q3. 프록시 서버 사용 시 페이지 내용이 계속 바뀌면?

답변: 실제 서버에서 응답할 때 캐시 만료 기한을 설정합니다. 프록시 서버로 사용자가 요청했을 때 요청한 시각이 프록시에서 다운받은 시간에서 만료 기간 이내면 프록시에서 다운로드하고, 그렇지 않으면 다시 실제 서버로 요청합니다.

Q4. VPN과 프록시의 차이는?

답변: Proxy와 VPN의 기본적인 차이점은 보안 기능입니다. VPN은 보안 기능이 탑재되어 공용망에서도 암호화되어 통신이 이루어져 중간 정보 탈취 염려가 적습니다. Proxy는 공용 서버이기 때문에 보안성이 없지만 IP 주소를 바꿔 우회하는 목적으로 많이 사용합니다.

Q5. 프록시 방화벽의 특징은?

답변: 프록시 방화벽은 세션에 포함된 정보의 유해성을 검사하기 위해 방화벽에서 세션을 종료하고 새로운 세션을 형성하는 방식입니다. 출발지에서 목적지로 가는 세션을 가로채어 두 세션으로 만든 다음 정보를 넘겨주기 전 검사를 수행합니다. 패킷 필터보다 느리지만 더 많은 검사가 가능하고 프로토콜 변경 등 추가 기능을 수행할 수 있습니다.


📚 원본 참고 자료

출처: 2023-CS-Study

추가 학습 자료