Lai_Khan
개발 & 공부 일지
Lai_Khan
전체 방문자
오늘
어제
  • 전체보기 (69)
    • 공부 (60)
      • 자료구조 & 알고리즘 (4)
      • 웹 (1)
      • JAVA (3)
      • Spring (8)
      • JPA (0)
      • 네트워크 (4)
      • Kubernetes (4)
      • Typescript (5)
      • React (1)
      • 기타 (3)
      • [부스트코스] 웹 프로그래밍 (13)
      • 정보처리기사 (1)
      • 백준 2020년 1~2월 알고리즘 (12)
    • 프로젝트 (0)
    • 취준 (1)
    • 책 (3)
    • 잡담 (5)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • OutOfPath
  • 백엔드
  • API
  • 스프링
  • Spring
  • http
  • proxy
  • 네트워크
  • 부스트코스
  • kubernetes
  • typescript
  • 클래스
  • JPA
  • 코드리뷰
  • 웹
  • java
  • 자바
  • 브라우저
  • 벡엔드
  • 객체

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Lai_Khan

개발 & 공부 일지

[네트워크 응용] Proxy
공부/네트워크

[네트워크 응용] Proxy

2024. 4. 3. 00:13
Proxy Server + Socket 수준 + Stream 데이터

 

Proxy 서버의 목적 1 - 우회

 

 

다이렉트로 웹서버에 접근을 하면 웹서버 측에서는 누가 접속했나 IP를 알 수 있다.

Proxy 서버를 통해 web server에 접근을 하면 web server 측에서는 프록시 서버를 접속 서버로 인식한다.

= 프록시 서버 설정을 하면 해당 프록시 서버 IP로 IP 주소를 감출 수 있다.

속도는 돌아가는 만큼 느리지만 접속은 가능하다. (이 방법으로 한국에서 차단되는 사이트에 접속 가능하다.)

 

Proxy 서버 구조

Proxy 서버에서는 Socket을 2개 연다. Listen과 Client

Listen Socket으로 외부의 접속을 받고 (사용자 접속)

Client Socket으로 대신 접속을 해준다. (외부 사이트 접속)

접속 대상 서버에서는 이걸 알려주지 않는 한 접속을 시도한 원 서버를 알 수 없다.

 

Proxy 서버의 목적 2 - 보호와 감시

기업의 경우 보안을 목적으로 인터넷을 사용하는 것을 막기도 한다. = 내부망 통제

프록시 서버를 세팅하고 프록시 서버를 통해야지만 특정 사이트에 접속할 수 있다.

(회사에서 사내망과 사내 페이지를 생각하면 된다.)

 

프록시 서버에서는 접속한 PC가 어떤 사이트에 접속하는지 다 알 수 있다. (=감시)

HTTP 트래픽 모니터링도 가능하다. (근무시간에 근무와 상관없는 사이트 접속 확인 가능)

또한 특정 파일을 다운로드 받았을 때 보안 검사를 할 수 있다. 이는 악성코드 유입 방지한다. (=보호)

 

Reverse Proxy

웹서버를 대신해 웹서버처럼 작동하는 proxy 서버(Reverse Proxy)가 있다. 대표적으로 SSL서버

목적 : 서버 보호

 

특정 사이트에 접속했을 때 Reverse procy가 있으면, DNS에 IP 주소를 물어볼때 실제 웹서버 주소를 알려주는 것이 아니라 Proxy 서버 IP 주소를 알려준다.

클라이언트는 우선 Proxy 서버에 접속하고, Proxy 서버가 웹서버를 대리해서 요청을 처리한다.

SSL 서버 뒤쪽에서는 평문(HTTP) 통신을 한다.

그리고 보통 SSL 뒤에 WAF(웹 방화벽)가 있어서 공격이 들어오면 차단한다.

 

즉 구조는

Client → SSL → WAF → 웹 서버

 

PC에 설치하는 Proxy

HTTPS의 문제는 트래픽 모니터링 및 분석을 위해 Wireshark를 설치했을때 암호화 문제로 내용을 볼 수 없다는 것이다.

이 경우 Proxy 형태로 작동하는 프로그램을 PC단에 설치해서 사용하는 방법이 있다.

전용 분석 방법론 도구 : Fiddler

 

Fiddler의 Proxy 구조는 다음과 같다.

localhost(127.0.0.1)를 프록시 서버로 설정하고 8080포트로 설정을 하면, Fiddler에서 서버 소켓을 8080 포트로 열어놓는다.

브라우저 process에서 Fiddler의 8080 포트로 접속하게 된다. 그리고 다시 Fiddler에서 포트를 열어 웹사이트에 접속한다.

그러면 결국 모든 트래픽이 Fiddler를 거치게 되고, 안에서 HTTPS를 복호화할 수 있다. (스트림 수준)

 

프록시 서버를 단일 호스트 내에서도 프로세스를 분리시켜서 프로세스 간의 통신처럼 떼낸 다음에 거쳐가는 형태로 운영할 수 있다. (공부 및 분석 목적)

 

정리

Proxy의 목적

  1. 우회
  2. 감시, 차단(=보호)
  3. Reverse Proxy (서버 보호)
  4. 분석
저작자표시 비영리 변경금지 (새창열림)

'공부 > 네트워크' 카테고리의 다른 글

[네트워크 응용] 부하분산 시스템 작동원리  (0) 2024.04.14
[네트워크 응용] 공유기 작동 원리  (0) 2024.04.14
[네트워크 응용] 네트워크 장치의 구조  (0) 2024.03.27
    '공부/네트워크' 카테고리의 다른 글
    • [네트워크 응용] 부하분산 시스템 작동원리
    • [네트워크 응용] 공유기 작동 원리
    • [네트워크 응용] 네트워크 장치의 구조
    Lai_Khan
    Lai_Khan

    티스토리툴바