가정 :
섬기는 사람:
- 정적 IPv4 주소로 공개 인터넷에서 라우팅 가능한 데비안 스퀴즈 서버가 있습니다.
- 서버에서 소프트웨어를 수정할 수있는 무제한 액세스 권한이 있습니다.
- 서버는 임의의 포트를 수신하고 방화벽 규칙을 재구성 할 수 있습니다. 기본적으로 서버가 수행 할 수있는 작업에는 제한이 없습니다.
고객:
- 내 로컬 시스템 (관리자 권한이없는 잠긴 Windows 데스크톱) 에서 관리자 액세스가 필요하지 않은 Firefox, Java 프로그램, .NET 프로그램 및 일부 기본 실행 파일을 실행할 수 있습니다.
- Firefox에 애드온을 설치할 수 있습니다.
- 루프백 (
localhost
) 인터페이스 의 모든 포트에서들을 수 있습니다 . 따라서 위에서 언급 한 프로그램 은 프록시를 거치지 않고 로컬 포트에 바인딩하여 임의의 네트워크 I / O를 수행 할 수 있습니다 . - 모든 공용 인터넷 액세스는 많은 사이트를 차단하고 신중하게 상태를 점검하는 제한적인 HTTP 프록시를 통해 라우팅됩니다. 포트 80에서는 HTTP (TLS / SSL 없음)를 독점적으로 허용합니다. 포트 443에서는
CONNECT
도메인 이름 / IP 주소로 차단되지 않은 원격 호스트에 대한 SSL / TLS 기반 을 허용 합니다. - 제한적 HTTP 프록시 는 프록시를 통해 허용되는 TLS 연결에 대한 심층 패킷 검사를 수행 하지 않으며 해당 연결에 대한 중간 공격을 수행 하지 않습니다 .
- 위에서 언급 한 서버 는 프록시에 의해 차단 되지 않습니다 .
골:
Firefox에서 생성 한 모든 HTTP 및 HTTPS 요청을 SSL / TLS를 통해 위의 서버를 통해 라우팅하고 싶습니다 .
"목표"에 대한 기타 참고 사항 :
- 엔드 포인트 사이트 (예
http://superuser.com
:)가 서버에 SSL / TLS를 사용하지 않더라도 클라이언트에서 서버로 SSL / TLS를 사용 하고 서버 에서 암호화 여부에 관계없이 HTTP 요청을 수행하려고합니다. -내가 원하는 목적지로. - 나는 상관 없어 내 서버가 "맑은의"SSL 트래픽에보고됩니다. 즉, 예를 들어 원격 서버에 액세스하는 경우 로컬 클라이언트에서 원격 서버로의 전체 종단 간 SSL 암호화가 필요하지 않습니다
https://google.com
. 즉, 서버가 데이터를 기밀로 유지한다고 신뢰 합니다. - 관리자 권한이 필요없고 32 비트 Windows 7에서 실행할 수있는 소프트웨어 또는 Firefox 애드온을 설치하려고합니다.
- 오픈 소스 소프트웨어는 독점 소프트웨어보다 선호되며 프리웨어는 라이센스 비용이 필요한 소프트웨어보다 선호됩니다.
- 기존 소프트웨어가 새로운 소프트웨어를 코딩하는 것보다 선호되지만, 이것이 유일한 방법이라면 코드를 작성하려고합니다.
나는 느슨하게 설명 된 "솔루션"을 찾고 있습니다.
- 클라이언트에 어떤 소프트웨어가 필요합니까? 알고있는 특정 소프트웨어 패키지가 있으면 이름을 지정하십시오. 그렇지 않으면 클라이언트 소프트웨어가해야 할 일을 설명하십시오 .
- 서버에 어떤 소프트웨어가 필요합니까? 알고있는 특정 소프트웨어 패키지가 있으면 이름을 지정하십시오. 그렇지 않으면 서버 소프트웨어가해야 할 일을 설명하십시오 .
- 위에서 특정 소프트웨어 패키지의 이름을 지정한 경우 목표를 달성하기 위해 어떤 구성 매개 변수를 설정해야하는지 설명하십시오.
- 어떤 이유로 당신이 믿는 경우에 가능하지 , 설명 하는 이유 .
내가 시도한 것들이 작동하지 않습니다
squid
서버에 설치 하면서 서버에 표준 HTTP 프록시를 설정하려고했습니다. 일반 HTTP를 통해 Firefox의 웹 사이트를 요청할 때 Firefox도 일반 HTTP를 통해 서버에 액세스하려고 시도하기 때문에 문제가 해결되지 않았습니다 ! 로컬 네트워크의 프록시는 물론 클라이언트와 서버 간의 정기적 인 HTTP 트래픽을 관찰 및 / 또는 차단할 수 있기 때문에 이는 허용되지 않습니다.- 로컬 컴퓨터에
tun
레이어 3 라우팅을 수행 할 수 있는 네트워크 어댑터 를 설치할 수있는 권한이 없거나 레이어 2 라우팅을 수행 할 수 없기 때문에 VPN이 작동 하지 않습니다. (예 :)tap
. 한마디로 : OpenVPN을 설치하려면 관리자 권한이 필요하며, 해당 관리자 권한이 일시적으로 있어도 회사가 설치되어 있다는 사실을 기쁘게 생각할 것입니다. Java 또는 .NET 프로그램은 특히 프로그램 추가 / 제거에 설치되어 있지 않고 OpenVPN과 같은 커널 드라이버 구성 요소가없는 경우 눈에 띄지 않습니다.
socat