OpenVPN에서 앱 하나를 선택했다면? 목록 기준선이 결정한다
같은 체크된 패키지도 목록 기준선에 따라 포함이 되거나 제외가 됩니다. 먼저 포함 전용을 고르고, 다시 연결한 뒤 전체 워크플로를 시험하세요.
체크박스가 결정 전체처럼 보이지만 Android에서는 그렇지 않습니다. 같은 체크된 패키지가 포함 전용 기준선에서는 이 앱만 VPN을 쓴다는 뜻이고, 선택 제외 기준선에서는 이 앱이 VPN을 건너뛴다는 뜻입니다. 사람들은 클라이언트를 설치하고 허용된 앱이라는 이름표가 붙은 목록을 찾아 관심 있는 패키지 하나를 체크한 뒤, 정반대로 동작하는 정책을 안고 떠납니다. 클라이언트를 바꾸는 일은 좀처럼 도움이 되지 않습니다; 목록을 건드리기 전에 기준선을 고르는 일이 도움이 됩니다.
기준선이 정책이고 체크박스가 아니다
Android의 VpnService에서 클라이언트는 addAllowedApplication 또는 addDisallowedApplication으로 앱별 라우팅을 구성합니다. 첫 번째는 터널을 목록에 있는 패키지로 제한하고, 두 번째는 그것들을 제외한 모든 것을 터널로 보냅니다. 클라이언트는 두 가지를 거의 똑같아 보이는 UI로 감싸고, 일부는 해당 구역을 모드가 아니라 목록으로 이름 붙이므로 구역 제목만으로는 어느 기준선이 활성인지 알 수 없습니다.
목록 위의 모드 컨트롤을 읽으세요, 제목이 아닙니다. 업스트림 OpenVPN for Android 클라이언트에서 허용된 앱 목록에는 포함 전용과 선택 제외 기준선이 있고, 브랜드 빌드는 같은 두 동작을 유지하면서 둘 다 다르게 표현할 수 있습니다. 다른 클라이언트나 같은 클라이언트의 이전 버전에서 찍은 스크린샷은 현재 모드에 대한 증거가 아닙니다.
| What the client shows | What a checked app gets |
|---|---|
| Allowed apps, include-only baseline | The app uses the tunnel; unchecked apps do not |
| Allowed apps, exclude-selected baseline | The app bypasses the tunnel; everything else uses it |
| No list configured | Client or profile default, commonly all apps |
그 표가 바로 오해의 전부입니다. 앱을 체크하는 것은 패키지 하나에 대한 진술이고, 그 진술이 포함인지 제외인지는 기준선이 정합니다.
모드를 먼저, 패키지는 그다음
이 순서대로 작업하세요, 한 기준선에서 만든 선택은 모드 변경 후에도 남아 그 효과를 조용히 뒤집을 수 있기 때문입니다:
- 실제 패키지가 무엇이고 개인 프로필 사본인지 업무 프로필 사본인지 확인합니다.
- 연결에 사용하는 바로 그 VPN 프로필의 앱 선택 설정을 엽니다.
- 선택한 앱만 VPN을 쓴다는 의미의 기준선을 설정합니다.
- 의도한 패키지를 포함하고 관련 없는 앱은 집합에서 뺍니다.
- 클라이언트가 새 목록으로 인터페이스를 다시 만들도록 재연결합니다.
패키지만큼 프로필도 중요합니다. 클라이언트는 여러 프로필을 가질 수 있고 앱별 선택은 실제로 연결하는 프로필에 속하므로, 쓰지 않는 프로필을 수정해도 아무것도 바뀌지 않습니다. 관리 기기에서 업무 프로필은 별도 사용자이며 자체 앱 사본과 자체 정책을 가지므로, 개인 인스턴스가 터널 안에 있다는 사실은 업무 인스턴스에 대해 아무것도 말해주지 않습니다.
결과를 판단하기 전에 재연결하세요
VpnService는 터널 인터페이스가 수립될 때 앱 목록을 읽습니다. 실행 중인 터널이 목록 편집을 반드시 반영하는 것은 아니고, 클라이언트마다 자동으로 다시 만드는지 연결을 끊었다 다시 연결하기를 기다리는지가 다릅니다.
변경이 아무 효과도 없는 것처럼 보이면 목록을 의심하기 전에 재연결을 시험하세요. 그다음 이미 열려 있던 페이지를 새로 고치는 대신 새 요청을 하세요: 연결을 계속 유지하는 앱은 좋은 시험 대상이 아니며, 보이는 결과는 이전 인터페이스의 것일 수 있습니다.
워크플로가 앱을 떠날 수 있습니다
앱은 로그인, 문서 뷰어 또는 공유 대상 때문에 브라우저로 작업을 넘길 수 있습니다. 포함 전용 기준선에서는 그 도우미들이 터널 밖에 있으므로, 첫 앱을 올바르게 구성했더라도 워크플로가 중간에 실패할 수 있습니다. 도우미가 워크플로에 정말 필요할 때만 포함하고, 데모 중에 발견하는 대신 의도적으로 추가하세요.
앱별 선택은 연결 자체의 경로 정책을 대체하지도 않습니다. 프로필은 여전히 앱이 쓰는 목적지 접두사와 주소 체계를 담아야 하고, 게이트웨이는 여전히 서비스를 허용해야 합니다. 올바르게 목록에 올린 앱이라도 목적지에 도달할 수 없으면 잘못 구성된 목록과 똑같이 보입니다.
양쪽을 시험한 뒤 정책을 적어 두세요
포함한 앱에서 새 요청 하나를, 밖에 있어야 할 앱에서 하나를 시험하세요. 출구 주소와 사설 리소스 접근을 비교하고, 재연결 후에 반복하세요. 조직이 Android의 VPN 없이 연결 차단 정책을 쓰면 제외된 앱은 직접 나가는 대신 아예 차단될 수 있습니다; 그것은 정책이 작동하는 것이지 우회할 결함이 아닙니다.
모드, 프로필과 함께 패키지 이름, 우회해야 할 앱, 터널이 담는 주소 체계, 터널이 꺼졌을 때 일어나야 할 일을 기록하세요. 클라이언트가 워크플로를 깔끔하게 표현할 수 없다면 루트 수준에서 방화벽 규칙을 편집하는 대신(그것은 Android가 지원하는 앱별 메커니즘의 일부가 아닙니다) 더 넓은 승인 앱 집합이나 관리 프로필 정책을 고르세요.