SSL VPN인가 TLS 래퍼인가? 실패한 경계를 비교하라
두 설계는 443에서 TLS를 돌리면서도 전혀 다른 뜻일 수 있다. 네 가지 확인: 구성된 경로, 백엔드, 전달되는 트래픽, 실패하는 경계.
두 설계는 443 포트에서 TLS를 돌리면서도 전혀 다른 것을 뜻할 수 있습니다. 래퍼는 로컬 포트와 원격 백엔드 사이의 구성된 연결 하나를 보호합니다. 네트워크 접속 설계는 선택된 트래픽을 나르고 클라이언트가 닿을 수 있는 범위를 바꿉니다. 아래 네 가지 확인을 순서대로 하면 어느 쪽을 보고 있는지 알 수 있고, 그것만으로 보통 어느 계층이 실패했는지 알 수 있습니다.
실제로 구성한 연결부터 시작하십시오
제품을 비교하기 전에 프런트엔드와 백엔드를 적어 두십시오. 래퍼는 로컬 주소에서 기다리며 원격 주소로 전달하거나 원격 측에서 프로그램을 시작하고, 그 쌍이 계약의 전부입니다. 클라이언트의 다른 애플리케이션은 그것을 향하게 하지 않는 한 아무것도 모릅니다. 이것은 도구의 결함이 아니라 도구의 목적입니다.
네트워크 설계의 계약은 다르며, 포트 쌍이 아니라 경로와 정책으로 표현됩니다.
두 설명 중 어느 쪽이 도면과 맞는지 보십시오. 답이 중간에 인증서가 있는 포트 매핑 하나라면 제품 이름이 VPN이어도 래퍼입니다. 답이 터널 인터페이스와 경로 변경이라면 443에서 돌아가도 네트워크 설계입니다.
래퍼가 무엇에 연결되는지 확인하십시오
수신과 연결 설정을 읽고 실제 백엔드까지 따라가십시오. 데이터베이스 포트로 전달하는 래퍼는 웹 애플리케이션을 열지 않으며, 프로그램을 실행하는 래퍼는 호스트의 나머지 전부를 공개하는 대신 그 프로그램을 시작합니다. 백엔드는 래퍼가 아는 유일한 대상입니다.
다음으로 TLS가 끝난 뒤 전달되는 스트림이 평문인지 판단하십시오. 감싸인 연결은 두 래퍼 사이 구간을 보호하고, 먼 쪽 래퍼 뒤에 일어나는 일은 별개의 문제입니다. 그래서 이미 자체 보호를 지닌 것을 감싸는 일은 때로 합리적이고 때로는 움직이는 부품만 늘어납니다. 두 답 중 하나를 가정하지 말고 다음 홉을 확인하십시오.
openssl s_client -connect wrapper.lab.example:443 -servername wrapper.lab.example -verify_return_error
sudo ss -ltnp | grep 443첫 명령은 클라이언트에 실제로 제시되는 인증서를 보여 주고, 둘째는 호스트에서 무엇이 수신 중인지 보여 줍니다. 다른 것을 읽기 전에 그 인증서 이름을 기대했던 이름과 비교하십시오.
설계가 어떤 트래픽을 나르는지 확인하십시오
네트워크 접속 설계는 선택된 트래픽을 나르고 클라이언트의 라우팅과 접속 정책과 통합됩니다. 허용은 인가가 아니므로 인증된 연결도 어떤 리소스에 닿을 수 있는지 결정이 필요합니다. 클라이언트 없는 포털은 지원되는 작업을 대리하면서 결코 tun 인터페이스로 나타나지 않는 세 번째 모델입니다.
제품 라벨은 어떤 모델을 샀는지 알려 주지 않고, 포트 번호는 더더욱 알려 주지 않습니다.
겹쳐 놓기는 가능하며 비교를 혼란스럽게 해서는 안 됩니다. 터널 프로토콜 자체를 지원되는 TCP 배치에서 TLS로 감쌀 수 있고, 이는 터널 주위에 계층을 더하지만 래퍼를 터널로 만들지는 않습니다. 그것은 고유한 성능과 장애 동작을 지닌 설계 선택이며 도면에 한 줄을 받을 자격이 있습니다. 기록한 다음 바깥 래퍼가 아니라 바탕 모델을 비교하십시오.
라벨이 아니라 실패한 경계를 확인하십시오
실패한 시도 하나의 프런트엔드 주소, 수신기, 클라이언트가 검증한 신원, 백엔드 대상, 요청된 작업을 사실로 적으십시오. 성공한 핸드셰이크는 바깥 TLS가 완료되었음을 증명할 뿐 백엔드에 관해서는 아무 말도 하지 않습니다. 백엔드의 거부는 프런트엔드 신원 실패와 다른 사건이며, 클라이언트에서 -verify_return_error를 빼도 둘 다 나아지지 않습니다. 다른 호스트 이름이나 포트를 통한 성공은 조건이 같았다는 것을 보여 주지 않으므로 같은 것끼리 비교하십시오.
443 포트는 TLS가 중간 장비를 통과하게 하는 관례입니다. 임의의 트래픽을 정책 장비에게 웹 요청처럼 보이게 만들지는 않습니다.
끝점 쌍, 무엇이 전달되는지, 어떤 애플리케이션이 쓰는지, 목적지가 어떤 권한을 강제하는지를 한 문장으로 밝히며 끝내십시오. 그 네 칸을 채우지 못하는 설계는 라벨이 무엇을 주장하든 완성되지 않았습니다. 그 문장은 방화벽을 소유한 사람에게 설계를 설명하는 가장 빠른 방법이기도 합니다.