Proxy Server
client에서 서버로 접속 시 직접적으로 접속하지 않고 중간에 대신 전달해주는 서버
프록시 서버는 요청된 내용을 캐시에 저장하고 다음에 같은 요청이 들어오면 캐시에 저장된 정보를 제공해 전송 시간을 단축함
Proxy Server 동작 원리
- 클라이언트 요청
- 클라이언트(웹 브라우저)가 특정 웹 페이지나 콘텐츠 요청
- 프록시 서버 전달
- 클라이언트의 요청이 프록시 서버로 전달됨
- 캐시 확인
- 프록시 서버는 캐시에 요청된 콘텐츠가 있는지 확인
- 캐시 존재
- 만약 콘텐츠가 최신 버전이라면 프록시 서버는 캐시된 콘텐츠를 클라이언트에게 전달
- 최신 버전이 아니라면 원본 서버로부터 콘텐츠를 갱신하고 갱신된 콘텐츠를 전달
- 캐시 미존재
- 홈페이지 서버에 접속하여 콘텐츠 요청
- 홈페이지 서버로부터 콘텐츠를 받아 이를 캐시에 저장한 후 클라이언트에게 전달
Proxy Server의 필요성
프록시 서버는 클라이언트와 서버 사이의 중개자 역할을 수행하며 다양한 기능을 통해 네트워크 효율성과 보안을 향상시킵니다.
✔️ 보안
요청/응답 필터링
- client와 server 간의 요청과 응답을 검사하고 필터링하여 악성코드나 유해한 콘텐츠 차단
- 특히 프록시 방화벽은 세션 정보를 검사하여 보안성을 더욱 강화
IP 주소 숨김
- 클라이언트의 실제 IP 주소를 숨겨 익명성을 제공
- 웹 서버의 실제 IP 주소 노출을 막고 보안성 높임
프록시 방화벽
- 세션에 포함되어 있는 정보의 유해성을 검사하여 악성 트래픽 차단
- 방화벽에서 세션을 종료하고 새로운 세션을 형성하는 방식
- 출발지에서 목적지로 가는 세션을 가로채어 출발지-방화벽 세션과 방화벽-목적이 세션으로 만들어 하나의 세션에서 다음 세션으로 정보를 넘겨주기 전 검사를 수행
- 패킷 필터링 방화벽보다 더 많은 부하 발생하여 성능 저하 but 패킷 내용까지 더 자세한 분석
- 프로토콜 변경이나 추가적인 기능 수행 가능
방화벽 (Firewall)
- 보안 규칙에 기반한, 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 네트워크 보안 시스템
- 외부로부터의 악의적인 접근 방지, 외부 사용자에게 제한된 접근 권한 부여위해 구축
✔️ 분산 처리
프록시 서버는 로드 밸런싱과 캐싱을 통해 트래픽을 분산처리함으로써 시스템 성능과 안정성을 향상시킨다.
로드 밸런싱을 통해 트래픽을 분산하고 캐싱을 통해 응답 속도를 향상시켜 분산 처리 기능을 수행한다.
캐싱
- 프록시 서버는 자주 요청되는 내용을 캐시에 저장하여 재요청 시 빠르게 응답 가능
- 캐시에 저장된 데이터는 서버에 접속하지 않고도 빠르게 제공 가능
- 응답 시간 단축, 트래픽 감소 → 시스템 성능 향상
로드 밸런싱
- 여러 대의 서버에 트래픽 분산시켜 부하를 균형있게 유지하는 기능
- 특정 서버에 과도한 부하가 집중되는 것을 방지 → 서버의 안정성과 성능 향상
✔️ 접근 제어
우회
- 접근 제어 기능을 사용하여 특정 웹 사이트나 서비스에 대한 접근을 우회하는 데 사용 가능
- ex) 지역 제한된 콘텐츠에 접근, 검열을 피하기 위해 프록시 서버를 사용
- 이런 우회 행위는 서비스의 이용 약관을 위반할 수 있으니 주의
ACL (Access Control List)
- 접근 제어 목록
- 프록시 서버는 ACL을 사용하여 특정 IP 주소, 도메인 등에 대한 접근 권한 설정 가능
- ACL을 통해 접근 허용 or 차단 가능
- ex) 기업이나 학교에서 유해 사이트 접속 차단, 특정 사용자에게만 접근 권한을 부여
Proxy Server 종류
✔️ 포워드 프록시 (Forward Proxy)
정의
- 위치 : 클라이언트와 인터넷 사이에 위치
- client의 요청을 대리하여 웹 서버와 통신하고 응답을 client에게 전달
특징
- 클라이언트 IP 주소를 숨기고 익명성 제공
- 캐싱 기능을 통해 네트워크 트래픽 줄이고 성능 향상
- 접근 제어 기능을 통해 특정 사이트나 서비스에 대한 접근 제한
- 주로 기업 환경에서 내부 사용자의 인터넷 사용을 통제하고 보안 강화하는 데 사용
- ex) 사용자가 naver.com 접속할 때 포워드 프록시 서버가 사용자의 요청을 받아 naver.com에 접속하고 결과를 사용자에게 전달
✔️ 리버스 프록시 (Reverse Proxy)
정의
- 위치 : 서버와 인터넷 사이에 위치
- client가 외부에서 서버에 접근할 때 요청을 받아 내부 서버에 전달하고 응답을 client에게 전달하는 방식
- 내부 서버를 대신하여 외부 client의 요청을 처리
특징
- 내부 서버의 IP 주소를 숨겨 보안을 강화 (DDoS 공격 등으로부터 보호)
- 로드 밸런싱 기능을 통해 여러 대의 서버에 트래픽 분산시켜 성능 향상
- SSL 암호화 기능을 통해 모든 요청을 해독하고 모든 응답을 암호화하여 안전한 통신 및 서버 부담 줄임
- 주로 웹 서버의 보안과 성능을 향상시키는 데 사용
- ex) 사용자가 naver.com 접속 시 Reverse 프록시가 사용자 요청을 받아 내부 서버에서 데이터를 받은 후에 이 데이터를 사용자에게 전달
- 클라이언트가 프록시 서버에 연결되었다는 것을 인식하지 X
⛔ 리버스 프록시 서버와 DMZ
DMZ는 내부 네트워크와 외부 네트워크 사이에 위치한 보안 구간
DMZ 에는 외부 사용자가 접근할 수 있는 서버(웹 서버, 메일 서버 등)를 배치하여 내부 네트워크를 보호
보안 강화
- 내부 서버 (WAS)에 직접 접근하는 경우 DB에 접근이 가능하여 해킹 문제 발생할 수 있음
- 리버스 프록시 서버를 DMA에 두고 실제 서비스 서버를 내부 네트워크에 위치시키면 외부 공격자가 내부 서버에 직접 접근하는 것을 차단할 수 있음
즉, 리버스 프록시 서버를 DMZ에 배치되어 내부 서버를 보호하고 외부 client의 요청을 효율적으로 처리
🆚 포워드 vs 리버스
포워드 프록시 | 리버스 프록시 | |
역할 | 클라이언트 요청 대리 | 서버 요청 대리 |
대상 | 클라이언트 | 서버 |
목적 | 클라이언트 보안 및 성능 향상 | 서버 보안 및 성능 향상 |
위치 | 클라이언트와 인터넷 사이 | 인터넷과 내부 서버 사이 |
IP 숨김 | 클라이언트 | 서버 |
End Point | 실제 서버 도메인 | 프록시 서버 도메인 |
통신 대상 | client - proxy - 인터넷 - 외부서버 | client - proxy - 내부 서버 |
주요 사용 목적 | 접근 제어, 캐싱, 익명성 | 서버 보안 강화, 로드 밸런싱, SSL 암호화 |
사용 환경 | 주로 기업 환경 | 주로 웹 서버 환경 |
프록시 서버의 다양한 기능:
- 캐싱: 자주 사용되는 웹 페이지나 콘텐츠를 저장하여 접근 속도를 향상시킵니다.
- 필터링: 특정 웹 사이트나 콘텐츠를 차단하여 유해한 정보로부터 사용자를 보호합니다.
- 보안: 클라이언트의 IP 주소를 숨겨 익명성을 제공하고, 악성 코드나 해킹으로부터 네트워크를 보호합니다.
- 로드 밸런싱: 여러 서버에 트래픽을 분산시켜 서버 부하를 줄이고 성능을 향상시킵니다.
- 접속 제어: 특정 사용자나 그룹의 인터넷 접속을 제한하거나 허용합니다.
- 로그 기록: 웹 사용 기록을 저장하여 네트워크 사용 현황을 분석하거나 감사 목적으로 활용합니다.
📌VPN (Virtual Private Network, 가상 사설망)
가상 IP 주소를 통해 실제 IP 주소를 숨기는 서비스
인터넷 연결을 암호화하여 사용자의 온라인 활동을 보호
OS 수준에서 작동하여 모든 인터넷 트래픽을 암호화하고 라우팅
주요 특징
- 암호화: 인터넷 트래픽을 암호화하여 해킹으로부터 사용자 보호
- IP 주소 숨김 : 가상 IP 주소를 사용하여 실제 IP 주소와 위치를 숨김
- 보안 강화 : 공공 Wi-Fi 환경에서도 안전하게 인터넷 사용 가능
- 접근 제한 우회 : 지역 제한된 콘텐츠에 접근하거나 검열을 우회
🆚 VPN vs 프록시 서버
VPN | 프록시 서버 | |
암호화 | 트래픽 자체를 암호화 | 트래픽 암호화X |
작동 수준 | OS 수준에서 동작 → 모든 트래픽 라우팅 | 응용프로그램 수준에서 동작 → 특정 앱, 브라우저 트래픽만 라우팅 |
속도 | 암호화로 인해 프록시 서버보다 느릴 수 있음 | VPN 보다 빠를 수 있음 |
비용 | 유료 서비스가 일반적 | 무료 서비스가 많음 |
연결 안정성 | 상대적으로 안정적 | 연결 중단이 잦음 |
보안 | 높음 | 낮음 |
활용 | 중요한 정보 관리시 적합 | 중요한 정보 관리시 적합하지 X |
❓ 프록시 서버 사용 시 페이지의 내용과 데이터 값이 계속 바뀌면?
- 캐시 만료 기한을 설정한다
- 프록시 서버라도 최초로 받은 요청에는 실제 서버로 요청을 보내야 하므로 그 때 만료기한을 설정해서 프록시 서버로 보내면 됨
- 프록시 서버로 사용자가 요청했을 때 요청한 시각이 프록시에서 다운받는 시간에서 만료 기한 기간 이내면 프록시에서 다운로드 할 것이고, 그렇지 않으면 실제 서버로 요청하게 됨
참고 출처
https://nordvpn.com/ko/blog/proxy-versus-vpn/
'CS > 네트워크' 카테고리의 다른 글
Cookie & Session (0) | 2025.02.27 |
---|---|
SOAP(Simple Object Access Protocol) (0) | 2025.02.27 |
REST (2) | 2025.02.25 |
HTTPS (0) | 2025.02.24 |
HTTP 진화과정 (0) | 2025.02.21 |