개인 URL을 열고 터널이 먼저 올라오기를 바라는 것은 경주이며, 보통 브라우저가 이깁니다. 이미 로드 중인 페이지에 반응하는 단축키는 DNS 조회와 흔히 첫 연결을 놓쳤고, 바로 그 부분이 VPN을 필요로 했습니다. 워크플로는 순서를 관찰하는 것이 아니라 소유해야 합니다. 그 워크플로가 Tasker에 속하는지는 세 가지 조건이 결정합니다.

하나의 진입점이 순서를 소유해야 한다

개인 서비스에 승인된 진입점 하나를 주고, 그 진입점이 단계를 순서대로 수행하게 하세요. 목적지를 검증하고, 의도한 프로필을 선택하고, 연결을 요청하고, 얼마나 기다릴지에 대한 한도를 두고 준비 결과를 기다린 다음에야 URL을 엽니다. 어느 단계든 실패하면 직접 열기로 넘어가는 대신 멈추고 그렇게 알리세요.

사람들이 건너뛰는 것이 바로 이 마지막 조항입니다. 시간 초과에도 URL을 여는 워크플로는 자동화가 없는 것보다 나쁩니다. VPN을 쓴 적이 없으면서 VPN이 실패한 것처럼 보이는 요청을 만들기 때문입니다.

1. validate destination against the approved list
2. select the intended VPN profile
3. request connection through the client's supported interface
4. wait for readiness, maximum 20 seconds
5. open the URL only if readiness succeeded
6. on timeout, stop and report

위의 번호 목록은 계약이며 내보낸 프로필이 아닙니다. 각 클라이언트는 제어 표면을 다르게 구현하고, 일부는 플러그인, 명시적 제어 권한, 또는 어떤 자동화도 제공할 수 없는 일회성 사용자 동의를 요구합니다.

연결됨은 준비됨과 같지 않다

터널이 시작되었다고 알리는 상태는 클라이언트가 요청을 수락했음을 입증합니다. 리졸버가 이제 개인 주소를 반환하는지 또는 의도한 서비스에 도달할 수 있는지는 입증하지 않습니다. 이것들은 별개의 결과이며, 그 사이의 간극이 너무 일찍 여는 단축키가 조용히 실패하는 지점입니다. 클라이언트는 자신의 상태를 보고하며, URL이 사용할 경로의 상태가 아닙니다.

준비 상태는 워크플로가 관찰할 수 있는 무언가를 기준으로 정의하세요. 클라이언트의 연결 상태, 예상 범위에서 확인된 주소, 또는 특정 서비스에 대한 도달 가능성 검사 모두 작동하지만, 검사가 일반 네트워크 경로로 되돌아갈 수 없어야 합니다. 일반 경로로 성공하는 검사는 아무것도 알려주지 않습니다.

대기에 한도를 두세요. 시간 제한이 없는 준비 조건은 고장 난 프로필을 멈춰 있는 단축키로 만들고, 사용자는 그것을 VPN 문제가 아니라 휴대폰이 멈추는 것으로 보고합니다.

Tasker가 할 수 있는 일과 없는 일

Tasker는 접착제를 제공합니다. 트리거, 순서가 있는 동작 목록, 조건, 그리고 URL 동작입니다. 그URL 열기 동작은 열기 단계만 수행하고 그 밖에는 아무것도 하지 않습니다. 연결 단계는 VPN 클라이언트에서 와야 하며, 플러그인, intent 또는 클라이언트가 문서화하고 허용한 공개 서비스를 통해야 합니다.

예를 들어 OpenVPN for Android는 AIDL과 intent에 기반한 원격 제어 인터페이스를 문서화합니다. 그것은 그 클라이언트의 능력이며, 기기의 어떤 작업이든 그것을 구동할 수 있는 라이선스가 아닙니다. 제어는 의도한 앱에만 부여하세요. 터널을 연결하고 끊을 수 있는 자동화 계층은 보호할 가치가 있는 제어 표면입니다.

설치된 클라이언트가 지원되는 제어 메커니즘을 노출하지 않는다면, 정직한 답은 이 워크플로를 그 클라이언트 위에 만들 수 없다는 것입니다. 오래된 기능 비교 페이지는 휴대폰에 있는 버전의 능력 명세가 아닙니다.

경계가 의무적이어야 할 때

자동화는 편리함이며, 편리함은 보안 경계를 강제할 수 없습니다. 적용 대상 앱이 VPN 없이 절대 통신하지 않아야 한다는 요구라면, 플랫폼의 항상 켜짐 VPN과 차단 설정, 또는 동등한 관리 구성을 사용하세요. 탐색이 시작된 뒤에 발생하는 브라우저 이벤트는 작업을 아무리 신중하게 배열해도 그 강제를 대신할 수 없습니다.

무엇을 만들지 결정하세요. 먼저 연결한 뒤 여는 단축키는 유용하며 보장은 아닙니다. 차단이 활성화된 관리 기기는 보장이며 Tasker 순서가 전혀 필요 없습니다.

RequirementMechanism
Open the page after the tunnel is readyOrdered task with a bounded readiness wait
Never allow traffic outside the tunnelAlways-on VPN with blocking, or managed policy
Only some apps use the tunnelPer-app VPN or work-profile scope
Different URL every timeValidate the input before opening it

하나가 아닌 세 가지 결과를 실행하세요

성공적인 연결, 의도적인 시간 초과, 터널이 끊긴 뒤의 보통 재연결에 대해 워크플로를 실행하세요. 시간 초과 경우는 순서가 정말로 멈추는지를 드러내고, 재연결 경우는 준비 상태가 확인되는지 아니면 이전 성공에서 단순히 가정되는지를 드러냅니다. 시간 초과 경우를 먼저 실행하세요. 실패를 무시하는 워크플로는 성공을 위해 시험할 가치가 없습니다.

승인된 목록의 목적지만 허용하고, 외부에서 오는 모든 링크는 열기 전에 확인하세요. 임의의 링크를 받아들이는 작업은 예상치 못한 스킴을 실행하는 수단이 되며, 그렇게 도달한 개인 관리 페이지는 실패한 단축키보다 나쁜 결과입니다.

프로필, 준비 조건, 시간 초과를 작업 옆에 적어 두세요. 다음에 VPN 클라이언트를 바꿀 사람은 세 가지 모두 필요하며, 어느 것도 단축키 아이콘에서는 보이지 않습니다.

관련 글