클라이언트 인증서를 사용하여 TCP 연결을 암호화하기 위해 Squid를“TLS 종료 프록시”로 사용할 수 있습니까?


8

요약

인터넷을 통해 여러 클라이언트에서 단일 포트 로 암호화 된 TCP 연결이 필요합니다 . 이것이 오징어와 함께 실현 될 수 있습니까?

구체적인 상황

LAN 및 VPN을 통해 액세스 할 수있는 회사의 모니터링 및 클라이언트 관리 솔루션을 사용합니다. 이제 회사 VPN을 사용하지 않는 외부 노트북 에서 액세스 할 수 있습니다 . 통신은 암호화되어야합니다 (TLS). 클라이언트 인증은 클라이언트 인증서를 사용해야합니다. 통신은 클라이언트에 의해 시작되며 단일 TCP 포트를 사용합니다.

내 조사 결과

NGINX Plus 는이 기능을 제공하는 것으로 보이지만 관리자는 오징어 나 아파치를 선호합니다. 오징어 위키에서 나는 기능 : HTTPS (HTTP 보안 또는 SSL / TLS를 통한 HTTP) 에서 TCP 암호화가 언급되었습니다. 그러나 나는 또한이 경고를 발견했다.

CONNECT를 통해 전달 된 프로토콜은 Squid가 일반적으로 처리하는 프로토콜로 제한되지 않습니다. 말 그대로 양방향 TCP 연결을 사용하는 모든 것은 CONNECT 터널을 통과 할 수 있습니다. 그렇기 때문에 Squid 기본 ACL이 CONNECT! SSL_Ports 거부로 시작하는 이유와 그 위에 허용 규칙 유형을 배치해야 할 이유가 있어야합니다.

비슷한 질문

이 질문 SSL을 사용하여 오징어 포워드 프록시로 클라이언트 연결을 암호화하는 것은 비슷하지만 리버스 프록시 / TLS 종료 프록시를 처리하지 않습니다.

내가 알아야 할 것

해당 기술에 대한 기본 지식 만 가지고 있으며 관리자가 일반적인 가능성에 대해 문의했습니다.

  • TCP 연결의 암호화 저장에 Squid를 사용할 수 있습니까?
  • 클라이언트 인증서를 사용한 인증을 사용하여이를 실현할 수 있습니까?
  • 아니면 HTTPS 연결에만 사용해야합니까?

답변:


7

관리자 NGINX Plus가 오픈 소스가 아니고 유지 관리가 잘되는 다른 오픈 소스 제품을 받아 들일 수 있기 때문에 관리자가 싫어할 수도 있습니다 . 그런 다음 stunnel 을 보도록 요청하십시오 . 그것은 정확히 당신의 요구를 위해 설계되었습니다.

wikipedia 에서 stunnel 예제를 인용하십시오 (SMTP의 경우, 이것은 귀하의 요구에 매우 적합합니다).

예를 들어, stunnel을 사용하여 기존 비 SSL 인식 SMTP 메일 서버에 대한 보안 SSL 연결을 제공 할 수 있습니다. SMTP 서버가 포트 25에서 TCP 연결을 예상한다고 가정합니다. SSL 포트 465를 비 SSL 포트 25에 맵핑하도록 stunnel을 구성합니다. 메일 클라이언트는 SSL을 통해 포트 465에 연결합니다. 클라이언트의 네트워크 트래픽은 처음에 SSL을 통해 stunnel로 전달됩니다. 애플리케이션은 트래픽을 투명하게 암호화 / 암호 해독하고 보안되지 않은 트래픽을 포트 25로 로컬로 전달합니다. 메일 서버는 비 SSL 메일 클라이언트를 봅니다.

stunnel 프로세스는 보안되지 않은 메일 애플리케이션과 동일하거나 다른 서버에서 실행될 수 있습니다. 그러나 두 시스템 모두 일반적으로 안전한 내부 네트워크의 방화벽 뒤에 있습니다 (따라서 침입자가 포트 25에 직접 보안되지 않은 자체 연결을 만들 수 없음).


+1, 매우 무시 무시한 소리
marsh-wiggle

1
stunnel은 HTTP 프록시보다 TLS 연결을 통해 일반 TCP 데이터를 릴레이하는 데 더 적합합니다.
Amos Jeffries

2

CONNECT는 HTTP 클라이언트가 HTTP 프록시에 대해서만 프록시를 통해 터널을 설정하는 데 사용됩니다. HTTP에는 HTTP 프록시에 대한 암호화 된 연결을위한 체계가 없습니다.

HTTP 프록시가 당신이 찾고있는 것이 아닌 것 같습니다.

Squid가 TLS 및 클라이언트 인증서로 TCP 플러그를 지원하는지 여부는 알 수 없지만 WinGate 는 지원합니다. 또한 인증서의 UserPrincipalName을 Active Directory로 확인할 수 있습니다.

면책 조항 : WinGate의 저자 인 Qbik에서 일합니다.


Squid는 TCP 연결을 암호화하는 데 사용할 수 없습니다 (적어도 추가 플러그인이 없으면)?
marsh-wiggle

암호화 된 TCP 연결을 통해 어떤 프로토콜을 실행 하시겠습니까?
Adrien

페이로드가 알려지지 않은 TCP
marsh-wiggle

좋아, 그래서 당신은 HTTP 프록시가 아닌 HTTP를 파싱하려고하지 않는 것이 필요하다. 온라인에서 Squid가 TLS 및 클라이언트 인증서와 함께 일반 플러그 데몬으로 실행될 수 있다는 증거를 찾을 수 없습니다.
Adrien
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.