본문 바로가기

CS

[네트워크] 프록시서버(Proxy server)와 방화벽, DMZ

프록시서버란?


  • 클라이언트와 서버 사이에 중간에 존재하는 서버로 다양한 역할을 함
  • 클라이언트와 서버를 중계해주는 역할

프록시서버 역할 및 사용 이유


  • 캐쉬 : 퍼포먼스 향상을 위해 쓰임
  • 보안 : 프록시 서버 경유 시 IP를 숨길 수 있음(익명화), 프록시 서버를 방화벽으로 이용하기도 함
  • 트래픽 분산
  • 접속 우회
  • 필터(접근 제어) : 보안성 향상, 프록시를 통한 모든 요청/응답 로깅

종류


포워드프록서(forwawrd proxy)

  • 클라이언트와 서버 사이에 위치해서 클라이언트처럼 행동
  • 일반적으로 말하는 프록시
  • 캐싱 : 클라이언트가 서버에 요청하면 클라이언트가 요청을 받아 자원을 가져와 클라이언트에 전달해줌(불필요한 전송 감소, 외부 요청 감소)
  • 익명성 : 서버가 요청받은 IP = 프록시 IP(사용자 컴퓨터, OS정보, 이메일 주소, Referer헤더, 쿠키 헤더 등 제거)
  • 클라이언트 대신 서버에 요청을 보내줌(client - proxy - internet - server)
  • ISP 지점에 위치, 출구(Egress) 프록시는 방화벽 혹은 트래픽 성능 개선 목적으로 로컬네트워크 출구에 설치되기도 함
  • 필터링

리버스 프록시(Reverse proxy)

  • 클라이언트가 보기엔 하나의 서버이지만 뒤에 여러 물리적 서버가 존재, 앞단에서 서버들을 보호하고 제어함
  • 클라이언트는 리버스 프록시 서버를 목적지 서버로 하여 통신함
  • 콘텐츠 라우터 : 특정 콘텐츠의 요청을 특정 웹 서버로 유도(가까운 캐시 서버로 유도하는 등)
  • 웹 캐시: 자주 요청되는 데이터의 로컬 사본을 관리하여 해당 요청이 있을 때 빠르게 응답
  • 보안 : 실제 서버들의 IP가 클라이언트에게 노출되지 않음
  • 암호화
  • 로드밸런싱 등의 역할을 수행 (client - internet - proxy - server)
  • 특정 데이터 접근 제어, 보안 방화벽

참고


로드밸런싱이란?

방화벽(firewall)

  • 특정 기준으로 트래픽을 차단(신뢰할 수 있는 내부 네트워크, 신뢰할 수 없는 외부 네트워크간의 장벽을 구성)
  • 예를들어 웹서버인데 POP이나 Telnet의 요청까지 열어둘 필요가 없는 경우 HTTP 외에 모두 차단할 수 있음
  • 다양한 계층에서 작동하지만 대부분은 Transport layer에서 작동, 특정 IP주소의 차단 혹은 특정 포트로의 접근을 모두 차단한다.
    ex) port80은 허용, port445(파일서버)로의 접근은 차단.
  • 접근 통제(패킷 필터링), 사용자 인증, 프록시 기능, 주소변환 기능(NAT), 감사 및 로깅 등
  • DMZ와 포트주소변환(PAT)