Squid 명시적 프록시를 사용하여 Https CONNECT 요청을 리디렉션하는 방법

Squid 명시적 프록시를 사용하여 Https CONNECT 요청을 리디렉션하는 방법

내부 네트워크의 일부 사용자에 대해 특정 URL을 차단하고 싶습니다. 나는 이 목적을 위해 direct_program과 함께 오징어 기반의 명시적 프록시를 사용하고 있습니다. 클라이언트는 https 요청을 명시적 프록시로 라우팅하는 https URL에 pac 파일을 사용하도록 구성됩니다.

문제는 https URL에 대한 CONNECT 요청을 차단된 페이지 URL로 리디렉션하는 데 실패한다는 것입니다. http 및 https 기반 차단 페이지 URL을 모두 시도했지만 행운을 찾을 수 없습니다. 어떤 이유로 SSL 범핑과 함께 투명 프록시를 사용하고 싶지 않습니다.

  1. Safari에서는 'Safari에서 페이지를 열 수 없습니다.'라는 오류가 표시됩니다. 오류는 "웹 프록시 서버를 통해 보안 터널을 설정하는 중에 문제가 발생했습니다"였습니다.

  2. 크롬에서 '이 웹페이지를 사용할 수 없습니다. ERR_TUNNEL_CONNECTION_FAILED'.

다음은 access.log의 한 줄입니다.https://www.yahoo.com.

2015년 10월 7일:01:41:29 -0500 74 172.0.0.9 TCP_REDIRECT/302 253 연결 www.yahoo.com:443 - HIER_NONE/- -

브라우저가 연결 요청 후 SSL/TLS 핸드셰이크를 시작할 것으로 예상하고 있다는 내용을 읽었는데 이것이 바로 실패하는 이유입니다. 다음은 오징어 리디렉터 문서의 인용문입니다.

"URL 변경 및 특히 리디렉션은 특정 방법에서만 가능하며 POST 및 CONNECT와 같은 일부 방법에는 특별한 주의가 필요합니다."

CONNECT 방식으로 리디렉션이 불가능하다는 말은 아닙니다. 그러나 POST 및 CONNECT를 어떻게 리디렉션할 수 있는지(특히 CONNECT에 관심이 있음)에 대한 언급이나 예가 어디에도 없습니다.

https 연결 요청을 차단된 페이지로 리디렉션하는 방법을 안내해 주세요. 이것이 가능하지 않은 경우 명시적 프록시를 사용하여 이에 대한 해결 방법이 있습니까? 감사합니다.

우분투에서 오징어 3.5.4를 사용하고 있습니다.

답변1

불행하게도 SSL 연결을 먼저 충돌(암호 해독)하지 않으면 불가능합니다. 브라우저는 실패한 CONNECT 요청으로 인한 추가 페이로드/리디렉션을 거부하도록 설계되었습니다. 더 공식적인 설명은 다음을 참조하세요.http://docs.diladele.com/faq/squid/cannot_connect_to_site_using_https.html.

만약 너라면하다SSL 암호 해독을 수행하기로 결정한 후 먼저 CONNECT 요청이 성공하도록 하고 나중에 이 설정된 연결 터널을 통해 들어오는 다음 HTTP 요청을 차단/리디렉션할 수 있습니다. 일부 응용 프로그램은 CONNECT 프록시 터널링을 사용하므로 HTTP가 아닐 수도 있다는 점을 고려하십시오. 자체 프로토콜(예: Skype)

또한 염두에 두어야 할 사항 - 응용 프로그램이 프록시에 대한 CONNECT 요청을 하는 동안 "SSL 고정" 기술을 사용한 경우 해독된 연결 작업을 거부합니다.

관련 정보