프록시(Proxy)란?
“대리”, “대신”의 의미로, 내부 네트워크에서 인터넷 접속을 할 때에, 빠른 엑세스나 안전한 통신 등을 확보하기 위한 중계서버를 프록시 서버라고 한다.
클라이언트와 웹 서버의 중간에 위치하여 중계기로서 대리로 통신을 수행하는 역할을 한다. 이를 통해 클라이언트에겐 빠른 속도의 서비스를, 서버에게는 불필요한 부하를 줄이는 효과를 낼 수 있게 된다.
프록시(Proxy)의 종류
프록시는 포워드 프록시와 리버스 프록시로 나뉘며, 포워드 프록시는 클라이언트, 리버스 프록시는 서버쪽의 설정을 담당한다.
포워드 프록시
클라이언트 뒤에 위치한다. 내부망에서 클라이언트와 프록시 서버가 통신하여 인터넷을 통해 외부에서 데이터를 가져온다.
클라이언트가 인터넷에 직접 접근하는 것이 아니라, 프록시 서버가 같은 내부망에 존재하는 클라이언트의 요청을 받아 인터넷을 통해 외부 웹 서버와 통신을 한다. 따라서 클라이언트는 프록시 서버만을 통해 정보를 얻게 되고, 웹 서버는 프록시 서버를 통한 엑세스 로그가 남는다.
즉 서버에게 클라이언트가 누군지 감출 수 있다.
포워드 프록시 장점
- IP 우회
클라이언트에서 프록시 서버를 거쳐 요청을 보내면 서버 측은 클라이언트 정보가 아닌 포워드 프록시 정보를 받게 된다. 이를 통해 서버 측에 클라이언트의 정보를 숨길 수 있다. - 캐싱
프록시 서버에 캐시를 저장할 수 있다. 동일한 페이지를 다시 요청했을 때 캐시에 남아있는 자원을 클라이언트에게 응답한다. 따라서 서버의 부하를 줄이고 응답 속도를 높일 수 있다. - 방화벽
포워드 프록시 서버에 룰을 추가하여 특정 사이트에 접속하는 것을 막을 수 있다.
ex. http://example2.co.jp만 허용하는 경우 http://example1.co.jp에 엑세스하려 해도 해당 사이트로 요청이 보내지지 않는다.
리버스 프록시
웹 서버 앞에 위치한다. 내부망에서 프록시 서버와 내부망 서버가 통신하여 인터넷을 통해 들어오는 요청을 프록시 서버가 대신 받아 응답해준다.
이때 클라이언트의 입장에서 프록시 서버는 웹 서버와 같은 동작을 하므로 웹 서버의 정보를 숨길 수 있다.
리버스 프록시 장점
- 로드 밸런싱
리버스 프록시 서버를 여러 개의 메인 서버 앞에 두어 특정 서버가 과부하되지 않도록 대용량 트래픽을 분산시켜 각각 다른 서버로 분배해주는 것이 가능하다. - 캐싱
포워드 프록시와 동일하게 동일한 데이터를 얻을 때 프록시 서버가 캐시에 저장했던 내용을 돌려준다. - 서버 보안
메인 서버의 IP 주소를 노출시키지 않을 수 있기 때문에 해커들의 DDoS 공격 등을 막는데 유용하다. - 암호화
SSL 암호화에 좋다. 내부의 메인 서버가 클라이언트와 통신 시 직접 SSL 또는 TLS로 암/복호화를 할 경우 비용이 많이 든다. 이때 리버스 프록시를 통해 암/복호화를 수행하면 서버의 부담을 줄이면서 클라이언트와 안전한 통신을 할 수 있다.
프록시 서버 위험
- 성능 영향
프록시 서버는 캐싱을 통해 트래픽 성능을 향상시킬 수 있지만 해를 끼칠 수도 있다. 최적화된 하드웨어가 없으면 프록시 서버와 관련된 비효율적인 라우팅으로 인해 네트워크 대기 시간이 증가할 수 있다. - 트래픽 로그
사용자의 모든 웹 트래픽은 프록시 서버를 통해 흐른다. 이를 통해 서버 운영자는 트래픽을 기록하여 이러한 로그를 사용하거나 판매할 수 있다. - 암호화 부재
프록시 서버에 대한 트래픽은 암호화로 보호되지 않을 수 있다. 이를 통해 도청자가 사용자의 웹 트래픽에 대한 정보를 수집할 수 있다. - 포트 해킹 위험
일부 프록시는 열린 포트를 사용한다. 열려있거나 암호로 보호되지 않는 포트의 경우 해커가 침입이 가능하다.
프록시 서버 vs VPN
💡 VPN
Virtual Private Network 가상 사설 네트워크의 약자로 서버와 클라이언트 간에 보안 처리된 터널을 만들고 이 터널에서 암호화된 데이터를 주고 받는다.
프록시 서버와 마찬가지로 원격 서버를 통해 인터넷 트래픽을 재라우팅하고 실제 IP 주소를 가상 IP 주소로 대체함으로써 웹사이트 측에서 사용자의 실제 IP 주소와 위치를 확인할 수 없도록 한다.
프록시(Proxy) | VPN | |
트래픽 암호화 | △ | O |
데이터 암호화 | X | O |
로드 밸런싱 | X | O |
라우팅 | 응용 프로그램 수준 | 운영 체제 수준 |
비용 | 대부분 무료 | 일반적으로 유료 |
- VPN은 프록시 서버와 달리 운영 체제 수준에서 동작하므로 브라우저나 백그라운드 앱에서 발생하는 모든 트래픽을 리디렉션할 수 있다.
- VPN은 보안 VPN 서버를 통해서 트래픽을 라우팅하고 트래픽을 암호화함으로써 프라이버시와 보안을 강화한다. 반면 프록시 서버는 트래픽을 중개 서버로 통과시키기만 할 뿐 추가적인 보안을 제공하지 않는다.
- VPN을 사용하고 있다면 프록시 서버가 필요하지 않다. 유료 VPN은 프록시 서버와 동일한 기능을 제공할 뿐만 아니라 프록시 서버에 포함되지 않은 추가적인 기능도 제공한다.
Reference
'CS' 카테고리의 다른 글
[DB] NoSQL (1) | 2024.04.06 |
---|---|
[자료구조] 힙(Heap) (0) | 2024.03.07 |
[SE] OOP란? (1) | 2024.03.04 |
[DB] Replication이란? (1) | 2023.11.15 |