프록시 서버
Proxy server![Two computers connected via a proxy server. The first computer says to the proxy server: "ask the second computer what the time is".](http://upload.wikimedia.org/wikipedia/commons/thumb/b/bb/Proxy_concept_en.svg/277px-Proxy_concept_en.svg.png)
컴퓨터 네트워킹에서 프록시 서버는 리소스를 요청하는 클라이언트와 해당 리소스를 제공하는 서버 사이의 중개자 역할을 하는 서버 응용 프로그램입니다.[1]그 과정에서 프라이버시, 보안 및 성능을 향상시킵니다.
클라이언트는 파일 또는 웹 페이지와 같은 리소스 요청을 수행할 수 있는 서버에 직접 연결하는 대신 요청을 프록시 서버로 전송하고, 프록시 서버는 요청을 평가하여 필요한 네트워크 트랜잭션을 수행합니다.이를 통해 요청의 복잡성을 단순화하거나 제어하거나 로드 밸런싱, 개인 정보 보호 또는 보안과 같은 추가적인 이점을 제공할 수 있습니다.프록시는 분산 시스템에 구조와 캡슐화를 추가하기 위해 고안되었습니다.[2]따라서 프록시 서버는 서비스를 요청할 때 클라이언트를 대신하여 기능하며, 잠재적으로 리소스 서버에 대한 요청의 실제 출처를 숨깁니다.
종류들
프록시 서버는 사용자의 로컬 컴퓨터에 상주하거나 사용자의 컴퓨터와 인터넷의 대상 서버 사이의 임의의 지점에 상주할 수 있습니다.수정되지 않은 요청 및 응답을 전달하는 프록시 서버를 보통 게이트웨이 또는 터널링 프록시라고 합니다.정방향 프록시는 광범위한 소스(대부분의 경우 인터넷 상의 어디에서나)에서 데이터를 검색하는 데 사용되는 인터넷 대면 프록시입니다.역방향 프록시는 일반적으로 개인 네트워크의 서버에 대한 액세스를 제어하고 보호하기 위해 프론트엔드로 사용되는 내부 대면 프록시입니다.역방향 프록시는 일반적으로 로드 밸런싱, 인증, 암호 해독 및 캐싱과 같은 작업도 수행합니다.[3]
오픈 프록시
![Diagram of proxy server connected to the Internet.](http://upload.wikimedia.org/wikipedia/commons/thumb/2/27/Open_proxy_h2g2bob.svg/280px-Open_proxy_h2g2bob.svg.png)
오픈 프록시는 모든 인터넷 사용자가 액세스할 수 있는 전달 프록시 서버입니다.2008년에 네트워크 보안 전문가인 Gordon Lyon은 수십만 개의 오픈 프록시가 인터넷에서 운영되고 있다고 추정했습니다.[4]
- 익명 프록시:이 서버는 프록시 서버의 ID를 나타내지만 클라이언트의 원래 IP 주소는 공개하지 않습니다.이러한 유형의 서버는 쉽게 검색할 수 있지만, 발신 IP 주소를 숨기기 때문에 일부 사용자에게 유용할 수 있습니다.
- 투명 프록시:이 서버는 자신을 프록시 서버로 식별할 뿐만 아니라 다음과 같은 HTTP 헤더 필드의 지원을 통해 식별합니다.
X-Forwarded-For
, 발신 IP 주소도 검색할 수 있습니다.이러한 유형의 서버를 사용할 경우 가장 큰 이점은 웹 사이트를 보다 빠르게 검색할 수 있도록 캐시할 수 있다는 점입니다.
역방향 프록시
![A proxy server connecting the Internet to an internal network.](http://upload.wikimedia.org/wikipedia/commons/thumb/6/67/Reverse_proxy_h2g2bob.svg/280px-Reverse_proxy_h2g2bob.svg.png)
역방향 프록시(또는 대리인)는 일반 서버로 클라이언트에 나타나는 프록시 서버입니다.역방향 프록시는 요청을 처리하는 하나 이상의 일반 서버로 전달합니다.원래 서버의 응답이 프록시 서버에서 직접 온 것처럼 반환되어 클라이언트는 원래 서버에 대해 전혀 알지 못합니다.[5]역방향 프록시는 하나 이상의 웹 서버 근처에 설치됩니다.인터넷에서 들어오는 모든 트래픽과 인근 웹 서버 중 하나의 목적지가 있는 트래픽은 프록시 서버를 통과합니다.역방향 프록시는 웹 서버에 더 가까이 위치하고 제한된 웹 사이트 집합만 제공하므로 "역방향 프록시"의 사용은 상대 "순방향 프록시"에서 비롯됩니다.역방향 프록시 서버를 설치하는 데에는 다음과 같은 여러 가지 이유가 있습니다.
- 암호화/SSL 가속: 보안 웹 사이트가 생성되면 SSL(Secure Sockets Layer) 암호화가 웹 서버 자체에서 수행되지 않고 SSL 가속 하드웨어가 장착된 역방향 프록시에서 수행되는 경우가 많습니다.또한 호스트는 "SSL 프록시" 하나를 제공하여 임의 수의 호스트에 대해 SSL 암호화를 제공할 수 있으므로 각 호스트에 대해 별도의 SSL 서버 인증서가 필요 없습니다. SSL 프록시 뒤에 있는 모든 호스트가 SSL 연결을 위해 공통 DNS 이름 또는 IP 주소를 공유해야 한다는 단점이 있습니다.이 문제는 Subject를 사용하여 부분적으로 해결할 수 있습니다.X.509 인증서의 AltName 기능 또는 TLS의 SNI 확장 기능.
- 로드 밸런싱: 역방향 프록시는 로드를 여러 웹 서버에 분산시킬 수 있으며, 각 서버는 자신의 응용 프로그램 영역에 서비스를 제공합니다.이러한 경우 역방향 프록시는 각 웹 페이지의 URL을 다시 작성해야 할 수 있습니다(외부에서 알려진 URL에서 내부 위치로 변환).
- 정적 콘텐츠 서비스/캐시: 역방향 프록시는 사진 및 기타 정적 그래픽 콘텐츠와 같은 정적 콘텐츠를 캐싱하여 웹 서버를 오프로드할 수 있습니다.
- 압축: 프록시 서버는 컨텐츠를 최적화하고 압축하여 로드 시간을 단축할 수 있습니다.
- 스푼 피딩(spoon feeding): 웹 서버가 보낸 콘텐츠를 캐싱하여 클라이언트에게 천천히 "스푼 피딩"함으로써 웹 서버에서 느린 클라이언트로 인해 발생하는 리소스 사용량을 줄입니다.이것은 특히 동적으로 생성된 페이지에 도움이 됩니다.
- 보안: 프록시 서버는 추가적인 방어 계층이며 일부 OS 및 웹 서버 관련 공격으로부터 보호할 수 있습니다.그러나 일반적으로 더 큰 위협으로 간주되는 웹 애플리케이션이나 서비스 자체에 대한 공격으로부터는 어떠한 보호도 제공하지 않습니다.
- 엑스트라넷 퍼블리싱: 인터넷에 직면한 역방향 프록시 서버를 사용하여 조직 내부의 방화벽 서버와 통신할 수 있으며, 서버를 방화벽 뒤에 두면서 일부 기능에 엑스트라넷 액세스를 제공합니다.이런 방식으로 사용할 경우, 웹 애플리케이션이 인터넷 공격에 노출되어 있기 때문에 이 서버가 손상될 경우 인프라스트럭처의 나머지 부분을 보호하기 위한 보안 조치를 고려해야 합니다.
사용하다
모니터링 및 필터링
콘텐츠 제어 소프트웨어
콘텐츠 필터링 웹 프록시 서버는 프록시를 통해 한 방향 또는 양방향으로 중계될 수 있는 콘텐츠에 대한 관리 제어를 제공합니다.인터넷 사용이 허용 가능한 사용 정책을 준수하도록 보장하기 위해 상용 및 비상업 조직(특히 학교)에서 일반적으로 사용됩니다.
콘텐츠 필터링 프록시 서버는 웹 액세스를 제어하기 위해 사용자 인증을 지원하는 경우가 많습니다.또한 일반적으로 특정 사용자가 액세스하는 URL에 대한 자세한 정보를 제공하거나 대역폭 사용 통계를 모니터링하기 위해 로그를 생성합니다.또한 데몬 기반 및/또는 ICAP 기반 바이러스 백신 소프트웨어와 통신하여 들어오는 콘텐츠를 네트워크에 진입하기 전에 실시간으로 검색하여 바이러스 및 기타 악성 프로그램에 대한 보안을 제공할 수도 있습니다.
많은 직장, 학교, 대학들은 건물에서 접근할 수 있고 이용할 수 있는 웹사이트와 온라인 서비스를 제한합니다.정부는 또한 바람직하지 않은 내용을 검열합니다.이 작업은 컨텐츠 필터(상업용 제품과 무료 제품 모두 사용 가능)라는 특수한 프록시를 사용하거나 개방형 캐싱 아키텍처에 플러그인 확장을 허용하는 ICAP와 같은 캐시 확장 프로토콜을 사용하여 수행됩니다.
학생들이 필터를 우회하고 차단된 콘텐츠에 액세스하는 데 일반적으로 사용하는 웹 사이트에는 프록시가 포함되어 있는 경우가 많으며, 이를 통해 사용자는 필터가 차단하려는 웹 사이트에 액세스할 수 있습니다.
요청은 URL 또는 DNS 블랙리스트, URL regex 필터링, MIME 필터링 또는 컨텐츠 키워드 필터링과 같은 여러 가지 방법으로 필터링할 수 있습니다.블랙리스트는 종종 웹 필터링 회사에 의해 제공되고 유지되며, 종종 범주(포르노그래피, 도박, 쇼핑, 소셜 네트워크 등)로 분류됩니다.
그런 다음 프록시는 요청된 URL이 허용 가능한 것으로 가정하고 내용을 가져옵니다.이때 복귀 경로에는 동적 필터가 적용될 수 있습니다.예를 들어, 살색 일치를 기반으로 JPEG 파일을 차단하거나 언어 필터가 원하지 않는 언어를 동적으로 탐지할 수 있습니다.내용이 거부되면 요청자에게 HTTP 페치 오류가 반환될 수 있습니다.
대부분의 웹 필터링 회사는 콘텐츠가 특정 유형일 가능성을 평가하는 인터넷 전체 크롤링 로봇을 사용합니다.수동 작업은 불만 사항 또는 콘텐츠 매칭 알고리즘의 알려진 결함을 기반으로 결과 데이터베이스를 수정하는 데 사용됩니다.[6]
일부 프록시는 데이터 손실 방지를 위해 아웃바운드 콘텐츠를 검색하거나 악성 소프트웨어를 위해 콘텐츠를 검색합니다.
암호화된 데이터 필터링
SSL/TLS(Transport Layer Security)의 신뢰 체인이 변조되지 않았다고 가정하면 웹 필터링 프록시는 보안 소켓 HTTP 트랜잭션을 내부에서 피어할 수 없습니다.SSL/TLS 신뢰 체인은 신뢰할 수 있는 루트 인증 기관에 의존합니다.
조직에서 클라이언트를 관리하는 작업영역 설정에서 프록시에 개인 키가 알려진 루트 인증서를 신뢰하도록 장치를 구성할 수 있습니다.이러한 상황에서는 SSL/TLS 트랜잭션의 내용에 대한 프록시 분석이 가능합니다.프록시는 프록시가 소유한 루트 인증서에 대한 클라이언트의 신뢰에 의해 허용되는 중간자 공격을 효과적으로 운영하고 있습니다.
필터 및 검열 우회
대상 서버가 요청의 원본을 기준으로 내용을 필터링할 경우 프록시를 사용하면 이 필터를 피할 수 있습니다.예를 들어 IP 기반 지리적 위치를 사용하여 특정 국가로 서비스를 제한하는 서버는 해당 국가에 위치한 프록시를 사용하여 해당 서비스에 액세스할 수 있습니다.[7]: 3
인터넷 사용자의 3% 이상이 우회 도구를 사용하지 않지만, 웹 프록시는 정부의 검열을 우회하는 가장 일반적인 수단입니다.[7]: 7
일부 프록시 서비스 공급자는 비즈니스 인텔리전스 목적으로 트래픽을 재라우팅하기 위해 기업이 프록시 네트워크에 액세스할 수 있도록 허용합니다.[8]
경우에 따라 사용자는 블랙리스트가 아닌 위치에서 정보를 프록시하도록 설계된 서비스를 사용하여 블랙리스트를 사용하여 필터링하는 프록시를 피할 수 있습니다.[9]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/CPT-Proxy.svg/400px-CPT-Proxy.svg.png)
기록 및 도청
프록시를 설치하여 클라이언트 컴퓨터와 웹 간의 데이터 흐름을 엿들을 수 있습니다.제출된 비밀번호와 사용된 쿠키를 포함하여 전송되거나 액세스된 모든 컨텐츠는 프록시 운영자가 캡처하고 분석할 수 있습니다.이러한 이유로, 온라인 서비스(예: 웹메일, 뱅킹)의 비밀번호는 항상 SSL과 같이 암호적으로 보안된 연결을 통해 교환되어야 하며, 최초 요청자에 대한 정보가 드러나지 않는 프록시를 체인으로 연결함으로써 사용자의 목적지에서 활동을 난독화할 수 있습니다.그러나 사용자의 활동을 추적하기 위해 사용되거나 제공될 수 있는 중간 홉에는 더 많은 추적이 남게 됩니다.이러한 다른 프록시의 정책 및 관리자를 알 수 없는 경우, 사용자는 이러한 세부 정보가 눈과 마음에서 벗어나 있다는 이유만으로 잘못된 보안 의식의 희생자가 될 수 있습니다.수많은 포럼과 웹 사이트가 사이트를 스팸 처리하거나 트롤링한 것으로 알려진 프록시로부터 IP 주소를 차단하기 때문에 위험보다는 불편한 점이 있습니다.프록시 튕기기는 프라이버시를 유지하기 위해 사용될 수 있습니다.
성능향상
캐싱 프록시 서버는 동일한 클라이언트 또는 다른 클라이언트가 이전에 요청한 내용을 검색하여 서비스 요청을 가속화합니다.[10]캐싱 프록시는 자주 요청하는 리소스의 로컬 복사본을 유지하므로, 대규모 조직은 업스트림 대역폭 사용량과 비용을 크게 절감하는 동시에 성능을 크게 향상시킬 수 있습니다.대부분의 ISP와 대기업은 캐싱 프록시를 가지고 있습니다.캐싱 프록시는 첫 번째 종류의 프록시 서버였습니다.웹 프록시는 일반적으로 웹 서버에서 웹 페이지를 캐시하는 데 사용됩니다.[11]캐시 프록시가 제대로 구현되지 않으면 사용자 인증을 사용할 수 없는 등의 문제가 발생할 수 있습니다.[12]
특정 링크와 관련된 문제나 성능 저하를 완화하기 위해 고안된 프록시로는 PEP(Performance Enhancing Proxy)가 있습니다.일반적으로, 이러한 링크는 높은 왕복 시간 또는 높은 패킷 손실(예: 무선 또는 휴대 전화 네트워크)이 있는 경우 또는 매우 다른 업로드 및 다운로드 속도를 특징으로 하는 매우 비대칭적인 링크에서 TCP 성능을 향상시키는 데 사용됩니다.PEP는 TCP ACK(승인)를 병합하거나 애플리케이션 계층에서 전송된 데이터를 압축하는 등 네트워크를 보다 효율적으로 활용할 수 있습니다.[13]
번역.
번역 프록시는 여러 시장의 웹 사이트 경험을 현지화하는 데 사용되는 프록시 서버입니다.글로벌 사용자로부터의 트래픽은 변환 프록시를 통해 소스 웹사이트로 라우팅됩니다.방문자가 프록시된 사이트를 검색할 때 요청은 페이지가 렌더링된 원본 사이트로 돌아갑니다.응답의 원래 언어 내용은 프록시를 통해 다시 전달될 때 번역된 내용으로 대체됩니다.번역 프록시에서 사용되는 번역은 기계 번역, 인간 번역 또는 기계와 인간 번역의 조합일 수 있습니다.번역 프록시 구현마다 다른 기능이 있습니다.일부에서는 원본 컨텐츠를 제외하거나 원본 컨텐츠를 원본 로컬 컨텐츠로 대체하는 등 로컬 사용자를 위해 원본 사이트를 추가로 사용자 지정할 수 있습니다.
익명으로 서비스에 액세스
익명 프록시 서버(웹 프록시라고도 함)는 일반적으로 웹 서핑의 익명화를 시도합니다.익명화자는 여러 가지로 구분될 수 있습니다.대상 서버(웹 요청을 최종적으로 충족하는 서버)는 익명화 프록시 서버로부터 요청을 수신하므로 최종 사용자의 주소에 대한 정보를 수신하지 않습니다.그러나 요청은 익명화된 프록시 서버에 익명으로 처리되지 않으므로 프록시 서버와 사용자 사이에 어느 정도의 신뢰가 존재합니다.많은 프록시 서버는 사용자에게 지속적인 광고 링크를 통해 자금을 지원받습니다.
액세스 제어:일부 프록시 서버는 로그온 요구 사항을 구현합니다.대규모 조직에서는 인증된 사용자가 웹에 액세스하려면 로그온해야 합니다.따라서 조직은 개인에 대한 사용 현황을 추적할 수 있습니다.일부 익명화 프록시 서버는 HTTP_VIA, HTTP_X_FORWARDED_와 같은 헤더 라인으로 데이터 패킷을 전달할 수 있습니다.클라이언트의 IP 주소를 나타낼 수 있는 FOR, 또는 HTTP_FORWARDED.엘리트 프록시 또는 상위 익명 프록시로 알려진 다른 익명화 프록시 서버는 프록시 서버가 클라이언트인 것처럼 보이게 합니다.익명성이 높은 프록시 서버를 사용하지 않은 이전 방문에서 클라이언트가 쿠키가 포함된 패킷을 보낸 경우에도 웹 사이트는 프록시가 사용되고 있다고 의심할 수 있습니다.쿠키와 가능한 캐시를 지우면 이 문제가 해결됩니다.
QA 지오타겟팅 광고
광고주들은 지오타겟 광고의 검증, 확인 및 품질 보증을 위해 프록시 서버를 사용합니다.지오타겟팅 광고 서버는 요청 소스 IP 주소를 확인하고 지오 IP 데이터베이스를 사용하여 요청의 지리적 소스를 결정합니다.[14]특정 국가나 도시 내에 물리적으로 위치한 프록시 서버를 사용하면 광고주들이 지정된 광고를 테스트할 수 있습니다.
보안.
프록시는 네트워크 주소 변환을 사용하여 회사의 내부 네트워크 구조를 비밀로 유지할 수 있으므로 내부 네트워크의 보안에 도움이 될 수 있습니다.[15]이렇게 하면 로컬 네트워크에 있는 컴퓨터와 사용자의 요청이 익명으로 처리됩니다.프록시를 방화벽과 결합할 수도 있습니다.
프록시가 잘못 구성되면 인터넷과 분리된 네트워크에 액세스할 수 있습니다.[4]
도메인 간 리소스
교차 도메인 제한으로 인해 웹 사이트가 외부 도메인에 직접 연결할 수 없는 경우 프록시를 통해 웹 사이트는 외부에서 호스팅된 리소스(예: 이미지, 음악 파일 등)에 대한 웹 요청을 할 수 있습니다.또한 (데이터 도난 등으로부터 웹 사이트를 보호하기 위해 시행된) 교차 도메인 제한으로 인해 브라우저가 외부 도메인에 직접 액세스할 수 없을 때 브라우저가 웹 사이트를 대신하여 외부에서 호스팅된 컨텐츠에 웹 요청을 할 수 있습니다.
악의적인 사용
2차시장중개업자
2차 시장 중개인들은 웹 프록시 서버를 이용하여 한정된 운동화나[16] 티켓과 같은 한정된 상품의 온라인 구매에 대한 제한을 피합니다.
프록시 구현
웹 프록시 서버
웹 프록시가 HTTP 요청을 전달합니다.클라이언트의 요청은 경로 대신 전체 URL이 전달되는 것을 제외하고 일반 HTTP 요청과 동일합니다.[17]
얻다 https://en.wikipedia.org/wiki/Proxy_server HTTP/1.1 프록시 권한 부여: 기본 인코딩 자격 증명 수락: 텍스트/
이 요청은 프록시 서버로 전송되고 프록시는 요청을 지정한 후 응답을 반환합니다.
HTTP/1.1 200 네 알겠습니다 내용 유형: text/html; charset UTF-8
일부 웹 프록시에서는 HTTP CONNECT 메서드가 연결을 통해 임의 데이터 전달을 설정할 수 있습니다. 일반적인 정책은 포트 443만 전달하여 HTTPS 트래픽을 허용하는 것입니다.
웹 프록시 서버의 예로는 Apache(mod_proxy 또는 Traffic Server 포함), HAPproxy, 프록시로 구성된 IIS(예: Application Request Routing 포함), Nginx, Privoxy, Squid, Varnish(역방향 프록시 전용), WinGate, Ziproxy, Tinyproxy, RabbIT 및 Polipo 등이 있습니다.
클라이언트의 경우 복잡하거나 다중 프록시 서버 문제는 클라이언트-서버 프록시 자동 구성 프로토콜(PAC 파일)로 해결됩니다.
삭스 프록시
SOKS는 또한 연결 단계 후에 임의의 데이터를 전달하며, 웹 프록시의 HTTP CONNECT와 유사합니다.
투명 프록시
인터셉트 프록시, 인라인 프록시 또는 강제 프록시라고도 하는 투명 프록시는 특별한 클라이언트 구성 없이 일반 응용 프로그램 계층 통신을 인터셉트합니다.클라이언트는 프록시의 존재를 알 필요가 없습니다.투명 프록시는 일반적으로 클라이언트와 인터넷 사이에 위치하며 프록시는 게이트웨이 또는 라우터의 일부 기능을 수행합니다.[18]
RFC2616 (하이퍼텍스트 전송 프로토콜-HTTP/1.1)는 표준 정의를 제공합니다.
"'투명 프록시'란 프록시 인증과 식별에 필요한 것 이상으로 요청이나 응답을 수정하지 않는 프록시입니다.""'비투명 프록시'는 그룹 주석 서비스, 미디어 유형 변환, 프로토콜 축소 또는 익명 필터링 등 사용자 에이전트에게 일부 부가 서비스를 제공하기 위해 요청 또는 응답을 수정하는 프록시입니다.
TCP 인터셉트는 서비스 거부 공격의 일종인 TCP SYN 플러드 공격으로부터 TCP 서버를 보호하는 트래픽 필터링 보안 기능입니다.TCP 인터셉트는 IP 트래픽에만 사용할 수 있습니다.
2009년 로버트 오거(Robert Auger)에 의해 투명 프록시가 작동하는 방식의 보안 결함이 발표되었으며,[19] 컴퓨터 비상 대응 팀(Computer Emergency Response Team)[20]은 영향을 받는 수십 개의 투명하고 가로채는 프록시 서버 목록을 권고했습니다.
목적
인터셉트 프록시는 일반적으로 클라이언트 브라우저 구성이 필요 없기 때문에 허용 가능한 사용 정책을 시행하고 관리 오버헤드를 줄이기 위해 기업에서 사용됩니다.그러나 이 두 번째 이유는 Active Directory 그룹 정책이나 DHCP 및 자동 프록시 탐지와 같은 기능으로 인해 완화됩니다.
또한 일부 국가의 ISP는 캐싱을 통해 업스트림 대역폭을 절약하고 고객 응답 시간을 향상시키기 위해 인터셉트 프록시를 일반적으로 사용합니다.이러한 현상은 대역폭이 더 제한적이거나(예: 도서 국가) 비용을 지불해야 하는 국가에서 더 일반적입니다.
문제들
TCP 연결의 전환 또는 가로채기로 인해 여러 가지 문제가 발생합니다.첫째, 원래의 목적지 IP와 포트를 어떻게든 프록시에 전달해야 합니다.게이트웨이와 프록시가 서로 다른 호스트에 있는 경우와 같이 항상 가능한 것은 아닙니다.사이트 간 공격의 종류는 원래(차단된) 대상에 대한 정보를 확인하지 않거나 액세스할 수 있는 프록시를 가로채는 특정 동작에 따라 달라집니다.이 문제는 패킷 처리기와 프록시 간에 이 정보를 전달할 수 있는 통합 패킷 레벨 및 응용 프로그램 레벨 어플라이언스 또는 소프트웨어를 사용하여 해결할 수 있습니다.
인터셉트는 또한 HTTP 인증, 특히 NTLM과 같은 연결 지향 인증에 문제를 일으키는데, 이는 클라이언트 브라우저가 프록시가 아닌 서버와 대화하고 있다고 생각하기 때문입니다.이로 인해 가로채기 프록시에서 인증이 필요한 경우 사용자가 인증이 필요한 사이트에 연결하는 문제가 발생할 수 있습니다.
마지막으로 연결을 가로채면 공유 캐시에 의해 일부 요청 및 응답이 캐시할 수 없게 되므로 HTTP 캐시에 문제가 발생할 수 있습니다.
구현방법
라우터/방화벽이 프록시와 동일한 호스트에 있는 통합 방화벽/프록시 서버에서는 Microsoft TMG나 WinGate와 같은 어떤 방법으로도 원래 대상 정보를 전달할 수 있습니다.
Cisco의 WCCP(Web Cache Control Protocol)를 사용하여 가로채기를 수행할 수도 있습니다.이 독점 프로토콜은 라우터에 상주하며 캐시에서 구성되므로, 캐시는 라우터에서 투명 리디렉션을 통해 어떤 포트와 트래픽이 전송되는지 확인할 수 있습니다.이 리디렉션은 GRE 터널링(OSI 계층 3) 또는 MAC 다시 쓰기(OSI 계층 2)의 두 가지 방법 중 하나로 발생할 수 있습니다.
트래픽이 프록시 시스템 자체에 도달하면 일반적으로 NAT(Network Address Translation)을 사용하여 인터셉션을 수행합니다.이러한 설정은 클라이언트 브라우저에서는 볼 수 없지만 프록시의 인터넷 측면에 있는 웹 서버 및 기타 장치에서는 프록시를 볼 수 있도록 합니다.최신 Linux 및 일부 BSD 릴리스는 IP 수준(OSI Layer 3) 투명 가로채기 및 아웃바운드 트래픽 스푸핑을 수행하여 프록시 IP 주소를 다른 네트워크 장치로부터 숨기는 TPROXY(transparent proxy)를 제공합니다.
탐지
가로채기 프록시 서버의 존재를 탐지하기 위해 여러 가지 방법이 사용될 수 있습니다.
- 클라이언트의 외부 IP 주소를 외부 웹 서버에서 볼 수 있는 주소와 비교하거나 때로는 서버에서 수신한 HTTP 헤더를 검사합니다.이 문제를 해결하기 위해 사이트에서 볼 수 있는 사용자의 IP 주소를 웹 페이지에서 사용자에게 다시 보고함으로써 여러 사이트가 생성되었습니다.사용자가 "IP"를 검색할 경우 Google은 페이지에 표시된 것처럼 IP 주소도 반환합니다.
- 대부분의 감청 프록시가 SSL을 감청하지 않기 때문에 HTTPS와 HTTP를 사용하여 액세스할 때 온라인 IP 검사기의 결과를 비교함으로써 감청이 의심되는 경우, 보안 웹 사이트와 연관된 인증서를 검사할 수 있습니다. 루트 인증서는 감청을 목적으로 발급되었는지 여부를 표시해야 합니다.
- HTTP(포트 80)와 같은 프록시 프로토콜에 대해 traceroute와 같은 도구에 의해 보고되는 네트워크 홉의 시퀀스를 SMTP(포트 25)와 같은 비 프록시 프로토콜에 대해 비교함으로써.[21]
- 서버가 없는 것으로 알려진 IP 주소에 연결을 시도하는 것입니다.프록시가 연결을 수락한 다음 프록시 온을 시도합니다.프록시가 연결을 수락할 서버를 찾지 못하면 오류 메시지를 반환하거나 클라이언트에 대한 연결을 간단히 닫을 수 있습니다.이러한 행동의 차이는 쉽게 발견할 수 있습니다.예를 들어, 대부분의 웹 브라우저는 HTTP 서버에 연결할 수 없는 경우 브라우저에서 생성된 오류 페이지를 생성하지만, 연결이 승인된 후 닫히는 경우에는 다른 오류를 반환합니다.[22]
- HTTP 호출을 서버로 다시 전송하는 최종 사용자가 특별히 프로그래밍한 Adobe Flash SWF 응용 프로그램 또는 Sun Java 애플릿을 제공합니다.
CGI 프록시
CGI 웹 프록시는 사용자의 브라우저 창에서 웹 양식을 사용하여 대상 URL을 수락하고 요청을 처리한 후 결과를 사용자의 브라우저로 반환합니다.따라서 "진정한" 프록시 설정을 변경할 수 없는 장치 또는 네트워크에서 사용할 수 있습니다.최초로 기록된 CGI 프록시는 1996년 초 미국의 컴퓨터 과학자 제임스 마셜이 리치 모린의 유닉스 리뷰에 기고하기 위해 개발한 것입니다.[23][24]
대부분의 CGI 프록시는 CGIP 프록시(펄 언어로 작성됨), Glype(PHP 언어로 작성됨) 또는 PHP 프록시(PHP 언어로 작성됨) 중 하나로 구동됩니다.2016년 4월 기준으로 CGIProxy는 약 2백만 건의 다운로드를 받았고, Glype는 거의 백만 건의 다운로드를 받았고, [25]PHPProxy는 여전히 매주 수백 건의 다운로드를 받고 있습니다.[26]VPN 및 기타 개인 정보 보호 방법으로 인해 인기가[27] 감소하고 있지만 2021년[update] 9월 현재 온라인에는 수백 개의 CGI 프록시가 여전히 존재합니다.[28]
일부 CGI 프록시는 장애인이 웹사이트에 더 쉽게 접근할 수 있도록 하는 등의 목적으로 설치되었지만, 그 이후 과도한 트래픽으로 인해 종료되었으며, 이는 보통 제3자가 로컬 필터링을 우회하기 위한 수단으로 서비스를 광고함으로써 발생합니다.이러한 사용자들 중 많은 수가 자신이 야기하는 부수적인 피해에 대해 신경 쓰지 않기 때문에, 조직은 자신의 대리인을 숨겨야만 했고, 조직에 연락하여 진정한 필요성을 입증하는 사람들에게만 URL을 공개해야 했습니다.[29]
접미사 프록시
접미사 프록시는 사용자가 요청한 컨텐츠의 URL(예: "en.wikipedia.org 에 프록시 서버의 이름을 추가하여 웹 컨텐츠에 액세스할 수 있도록 합니다.SuffixProxy.com ").접미사 프록시 서버는 일반 프록시 서버보다 사용하기 쉽지만 높은 수준의 익명성을 제공하지 않으며 주로 웹 필터를 우회하는 데 사용됩니다.그러나 고급 웹 필터로 인해 거의 사용되지 않습니다.
양파 프록시 소프트웨어
![Screenshot of computer program showing computer locations on a world map.](http://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Vidalia-0.0.11-svn.png/220px-Vidalia-0.0.11-svn.png)
토르는 온라인 익명성을 제공하기 위한 시스템입니다.[30]Tor 클라이언트 소프트웨어는 네트워크 감시 또는 트래픽 분석을 수행하는 사람으로부터 사용자의 컴퓨터 위치 또는 사용을 숨기기 위해 서버의 전세계 자원봉사 네트워크를 통해 인터넷 트래픽을 라우팅합니다.Tor를 사용하는 것은 인터넷 활동을 추적하는 것을 더 어렵게 만들고 사용자의 개인적 자유와 온라인 사생활을 보호하기 위한 것입니다.[30]
"양파 라우팅"은 암호화 서비스의 계층화된 특성을 말합니다.원본 데이터는 여러 번 암호화되고 다시 암호화된 후 연속적인 Tor 릴레이를 통해 전송되며, 각 릴레이는 데이터를 다음 릴레이와 최종 목적지로 전달하기 전에 암호화의 "계층"을 해독합니다.이렇게 하면 원본 데이터를 스크램블하지 않거나 전송 중에 이해할 가능성이 줄어듭니다.[31]
I2P 익명 프록시
I2P 익명 네트워크('I2P')는 온라인 익명성을 목표로 하는 프록시 네트워크입니다.Tor의 양파 라우팅 기능을 강화한 마늘 라우팅 기능을 구현합니다.I2P는 완전히 분산되어 여러 계층의 모든 통신을 암호화하고 여러 위치의 자원봉사자가 운영하는 라우터 네트워크를 통해 중계하는 방식으로 작동합니다.I2P는 정보의 출처를 숨김으로써 검열 저항을 제공합니다.I2P의 목적은 사용자의 개인적 자유, 프라이버시, 기밀 업무 수행 능력을 보호하는 것입니다.
I2P의 각 사용자는 컴퓨터(노드)에서 I2P 라우터를 실행합니다.I2P 라우터는 다른 피어를 찾고 이 피어를 통해 익명화 터널을 구축하는 일을 처리합니다.I2P는 모든 프로토콜(HTTP, IRC, Socks 등)에 대한 프록시를 제공합니다.
네트워크 주소 변환기와의 비교
프록시 개념은 OSI 참조 모델에서 계층 7 애플리케이션을 의미합니다.NAT(네트워크 주소 변환)은 프록시와 비슷하지만 계층 3에서 작동합니다.
계층 3 NAT의 클라이언트 구성에서는 게이트웨이를 구성하는 것으로 충분합니다.그러나 계층 7 프록시의 클라이언트 구성의 경우 클라이언트가 생성하는 패킷의 대상이 항상 프록시 서버(계층 7)여야 합니다. 그러면 프록시 서버가 각 패킷을 읽고 실제 대상을 찾습니다.
NAT은 계층 3에서 운영되므로 계층 7 프록시보다 리소스 집약적이지 않고 유연성도 떨어집니다.이 두 기술을 비교할 때 '투명 방화벽'이라는 용어가 등장할 수 있습니다.투명 방화벽은 프록시가 클라이언트 몰래 계층-7 프록시 이점을 사용하는 것을 의미합니다.클라이언트는 게이트웨이가 계층 3의 NAT이라고 가정하고 패킷 내부에 대해 전혀 알지 못하지만 이 방법을 통해 계층 3 패킷이 계층 7 프록시로 전송되어 조사를 받습니다.[citation needed]
DNS 프록시
DNS 프록시 서버는 일반적으로 로컬 네트워크에서 DNS 쿼리를 가져와 Internet Domain Name Server에 전달합니다.또한 DNS 레코드를 캐시할 수도 있습니다.
프록시
일부 클라이언트 프로그램 "SOKs-ify" 요청을 통해 네트워크에 연결된 소프트웨어를 특정 유형의 프록시 서버(주로 SOKs)를 통해 외부 네트워크에 연결할 수 있습니다.[32]
RESIP(Residential Proxy)
레지던스 프록시는 ISP(Internet Service Provider)가 제공하는 실제 IP 주소를 최종 사용자의 모바일 및 컴퓨터와 같은 물리적 장치와 함께 사용하는 중개자입니다.레지던스 프록시 사용자는 서버에 직접 연결하는 대신 레지던스 IP 주소를 통해 타겟에 연결합니다.그런 다음 대상은 그들을 유기적인 인터넷 사용자로 식별합니다.추적 도구가 사용자의 재할당을 식별하도록 허용하지 않습니다.[33]모든 레지던스 프록시는 임의의 수의 동시 요청을 보낼 수 있으며, IP 주소는 특정 지역과 직접 관련되어 있습니다.[34]다른 IP 주소 뒤에 사용자의 실제 IP 주소를 숨기는 일반 레지던스 프록시와 달리, 백커넥트 프록시라고도 하는 회전 레지던스 프록시는 프록시 풀 뒤에 사용자의 실제 IP 주소를 숨깁니다.이 프록시들은 매 세션마다 또는 일정한 간격마다 서로 바뀝니다.[35]
프로바이더는 프록시 호스트가 자발적으로 참여하고 있다고 주장하지만, 잠재적으로 손상된 호스트(사물인터넷 장치 포함)에서 수많은 프록시가 운영됩니다.연구자들은 호스트를 상호 참조하는 과정을 통해 잠재적으로 원하지 않는 프로그램으로 분류되어 RESIP 호스트가 수행하는 다양한 권한 없는 활동을 노출시킨 로그를 확인하고 분석했습니다.이러한 활동에는 불법 홍보, 빠른 유동성, 피싱, 멀웨어 호스팅 등이 포함되었습니다.[36]
참고 항목
- 행성간 파일 시스템
- 응용 프로그램 방화벽
- 캡티브 포털
- 다크넷
- 분산 체크섬 클리어하우스
- 프리프록시
- 인터넷 개인 정보 보호
- 프록시 리스트
- SMTP 프록시
- 호스트 기반 HTTP 가속을 설명하는 웹 가속기
- 웹 캐시
참고문헌
- ^ Luotonen, Ari; Altis, Kevin (April 1994). "World-Wide Web Proxies" (PDF). Archived (PDF) from the original on 9 October 2016.
- ^ Shapiro, Marc (May 1986). Structure and Encapsulation in Distributed Systems: the Proxy Principle. 6th International Conference on Distributed Computing Systems (ICDCS). Cambridge, MA, USA. pp. 198–204. inria-00444651. Archived from the original on 26 December 2018. Retrieved 26 December 2018.
- ^ "Proxy servers and tunneling". MDN Web Docs. Archived from the original on 26 November 2020. Retrieved 6 December 2020.
- ^ a b Lyon, Gordon (2008). Nmap network scanning. US: Insecure. p. 270. ISBN 978-0-9799587-1-7.
- ^ "Forward and Reverse Proxies". httpd mod_proxy. Apache. Archived from the original on 10 February 2011. Retrieved 20 December 2010.
- ^ Suchacka, Grażyna; Iwański, Jacek (7 June 2020). "Identifying legitimate Web users and bots with different traffic profiles — an Information Bottleneck approach". Knowledge-Based Systems. 197: 105875. doi:10.1016/j.knosys.2020.105875. ISSN 0950-7051. S2CID 216514793.
- ^ a b "2010 Circumvention Tool Usage Report" (PDF). The Berkman Center for Internet & Society at Harvard University. October 2010. Archived (PDF) from the original on 18 January 2012. Retrieved 15 September 2011.
- ^ "How to Check if Website is Down or Working Worldwide". Hostinger. 19 November 2019. Archived from the original on 14 December 2019. Retrieved 14 December 2019.
- ^ "Using a Ninjaproxy to get through a filtered proxy". advanced filtering mechanics. TSNP. Archived from the original on 9 March 2016. Retrieved 17 September 2011.
- ^ "Caching Proxy". www.ibm.com. Retrieved 2 July 2023.
- ^ Thomas, Keir (2006). Beginning Ubuntu Linux: From Novice to Professional. Apress. ISBN 978-1-59059-627-2.
A proxy server helps speed up Internet access by storing frequently accessed pages
- ^ I. Cooper; J. Dilley (June 2001). Known HTTP Proxy/Caching Problems. IETF. doi:10.17487/RFC3143. RFC 3143. Retrieved 17 May 2019.
- ^ "Layering". Performance Enhancing Proxies Intended to Mitigate Link-Related Degradations. IETF. June 2001. p. 4. sec. 2.1. doi:10.17487/RFC3135. RFC 3135. Retrieved 21 February 2014.
- ^ "Hot Tactics For Geo-Targeted Ads on Google & Bing". October 2013. Archived from the original on 14 February 2014. Retrieved 7 February 2014.
- ^ "Firewall and Proxy Server HOWTO". tldp.org. Archived from the original on 23 August 2011. Retrieved 4 September 2011.
The proxy server is, above all, a security device.
- ^ "Sneaker Bot Supreme Proxy". GeoSurf. Archived from the original on 24 September 2017. Retrieved 24 September 2017.
- ^ "absolute-form". HTTP/1.1 Message Syntax and Routing. IETF. June 2014. p. 41. sec. 5.3.2. doi:10.17487/RFC7230. RFC 7230. Retrieved 4 November 2017.
a client MUST send the target URI in absolute-form as the request-target
- ^ "Transparent Proxy Definition". ukproxyserver.org. 1 February 2011. Archived from the original on 1 March 2013. Retrieved 14 February 2013.
- ^ "Socket Capable Browser Plugins Result in Transparent Proxy Abuse". The Security Practice. 9 March 2009. Archived from the original on 2 February 2010. Retrieved 14 August 2010.
- ^ "Vulnerability Note VU#435052". US CERT. 23 February 2009. Archived from the original on 10 July 2010. Retrieved 14 August 2010.
- ^ "Subversion Dev: Transparent Proxy detection (was Re: Introduction_". Tracetop.sourceforge.net. Archived from the original on 16 October 2015. Retrieved 16 November 2014.
- ^ Wessels, Duane (2004). Squid The Definitive Guide. O'Reilly. pp. 130. ISBN 978-0-596-00162-9.
- ^ Marshall, James. "CGIProxy". Archived from the original on 16 November 2018. Retrieved 12 November 2018.
- ^ "The Limits of Control". June 1996. Archived from the original on 6 August 2020. Retrieved 12 November 2018.
- ^ "Glype® Proxy Script". glype.com. Archived from the original on 3 January 2013. Retrieved 17 May 2019.
- ^ "PHProxy". SourceForge. Archived from the original on 14 March 2016. Retrieved 7 April 2016.
- ^ "Google Trends". Google Trends.
- ^ "Proxy Stats :: Get Proxi.es". getproxi.es. Archived from the original on 1 September 2021. Retrieved 5 September 2021.
- ^ Estrada-Jiménez, José (March 2017). "Online advertising: Analysis of privacy threats and protection approaches". Computer Communications. 100: 32–51. doi:10.1016/j.comcom.2016.12.016. hdl:2117/99742. S2CID 34656772.
- ^ a b Glater, Jonathan (25 January 2006). "Privacy for People Who Don't Show Their Navels". The New York Times. Archived from the original on 29 April 2011. Retrieved 4 August 2011.
- ^ The Tor Project. "Tor: anonymity online". Archived from the original on 9 April 2010. Retrieved 9 January 2011.
- ^ Zwicky, Elizabeth D.; Cooper, Simon; Chapman, D. Brent (2000). Building Internet Firewalls (2nd ed.). O'Reilly. p. 235. ISBN 978-1-56592-871-8.
- ^ "What Is a Proxy Server and How Does It Work?". IPRoyal.com. 17 April 2023. Retrieved 2 July 2023.
- ^ Smith, Vincent (2019). Go Web Scraping Quick Start Guide: Implement the power of Go to scrape and crawl data from the web. Packt Publishing Ltd. ISBN 978-1-78961-294-3. Archived from the original on 17 January 2023. Retrieved 19 November 2020.
- ^ Keenan, James. "What are Residential Proxies?". Smartproxy.com. Archived from the original on 26 December 2021. Retrieved 26 December 2021.
- ^ Mi, Xianghang; Feng, Xuan; Liao, Xiaojing; Liu, Baojun; Wang, XiaoFeng; Qian, Feng; Li, Zhou; Alrwais, Sumayah; Sun, Limin; Liu, Ying (May 2019). Resident Evil: Understanding Residential IP Proxy as a Dark Service. 2019 IEEE Symposium on Security and Privacy (SP). pp. 1185–1201. doi:10.1109/SP.2019.00011. ISBN 978-1-5386-6660-9. S2CID 132479013.
외부 링크
- Curlie의 프록시 소프트웨어 및 스크립트
- 컬리에서 무료 웹 기반 프록시 서비스 제공
- 컬리에서 무료 http 프록시 서버 제공