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의 목적
- 우회
- 감시, 차단(=보호)
- Reverse Proxy (서버 보호)
- 분석
'공부 > 네트워크' 카테고리의 다른 글
[네트워크 응용] 부하분산 시스템 작동원리 (0) | 2024.04.14 |
---|---|
[네트워크 응용] 공유기 작동 원리 (0) | 2024.04.14 |
[네트워크 응용] 네트워크 장치의 구조 (0) | 2024.03.27 |