Android에서 VPN 구성을 금지하기: 배포 체크리스트
정책을 정하고, 실제로 가진 권한을 확인하고, 버전별 동작을 점검하고, 적용하기 전에 승인된 상시 연결 경로를 살려 두십시오.
누군가 관리되는 Android 기기에서 사람들이 스스로 VPN을 구성하지 못하게 해 달라고 요청합니다. 솔깃한 답은 익숙한 포트 몇 개를 막는 방화벽 규칙입니다. 그 답은 플랫폼이 어떻게 동작하고 앱이 실제로 어떻게 연결되는지를 놓치고 있습니다.
지원되는 통제는 소유한 기기나 프로필에 대한 관리 제한이며, 명확한 범위, 버전별로 다른 동작, 그리고 의도적으로 구성해야 하는 예외가 있습니다.
아래 다섯 가지 점검을 순서대로 진행하십시오. 어느 것이든 계획을 무효로 만들 수 있으니, 성립하지 않는 첫 점검에서 멈추십시오.
점검 1: VPN이 없다는 것의 의미를 정하십시오
같은 문장 뒤에 두 가지 요구가 숨어 있습니다. 하나는 어떤 사용자도 자신의 VPN을 만들 수 없다는 것입니다. 다른 하나는 조직이 승인한 VPN만 동작할 수 있다는 것입니다. 둘 다 정당하며, 서로 다른 구성과 서로 다른 지원 이야기, 서로 다른 실패 방식을 낳습니다.
관리 콘솔을 건드리기 전에 어느 쪽을 사는지 적어 두십시오. 모두에게 하나의 승인된 터널이 의도라면, 주변에 금지를 둔 승인된 경로를 구현하는 것입니다. 터널을 전혀 허용하지 않는 것이 의도라면, 원격 접근과 문제 해결 경로가 달라진다는 점도 받아들여야 합니다.
여기서 틀리면 배포는 동작하는 것처럼 보이면서 운영이 의존하는 VPN을 조용히 끊어 버리고, 보통 당직자가 불편한 시간에 그것을 발견합니다.
점검 2: 실제로 가진 권한을 확인하십시오
Android는 이 제한을 UserManager.DISALLOW_CONFIG_VPN 로 노출하며, 이는 UserManager 참조 문서 에 문서화되어 있습니다. VPN 구성과 시작을 막으며, 일반 앱이 자기 자신이나 다른 앱에 적용할 수 있는 설정이 아닙니다.
권한 있는 관리자가 적용합니다. 기기 전체라면 기기 소유자, 관리 프로필이라면 프로필 소유자이며, 관리 프로필 내부의 프로필 소유자에게도 같은 권한이 있습니다. EMM이 그중 하나로 동작할 수 없다면 이 통제는 없는 것이고, 콘솔에서 아무리 정책을 구성해도 만들어지지 않습니다.
범위는 권한만큼 중요합니다. 업무 프로필에 적용한 제한은 그 프로필을 지배하며, 같은 휴대폰의 개인 쪽은 아닙니다. 그것을 사용자가 하는 모든 일에 대한 통제라고 설명하는 것은 부정확하고, 개인 프로필에 VPN을 설치해 동작하는 것을 확인하는 첫 사람이 그것을 시험하게 됩니다.
점검 3: 버전별 동작을 아십시오
이 제한은 릴리스마다 바뀌었고, 그 차이가 현장 기기에서 배포가 실제로 무엇을 하는지를 결정합니다.
| 플랫폼 경계 | 문서화된 동작 |
|---|---|
| 기기 또는 프로필 소유자 | 그 소유자의 권한 아래에서 제한을 적용할 수 있음 |
| API 24 이상 | 기기 또는 프로필 소유자가 구성한 상시 연결 VPN은 여전히 시스템이 시작합니다 |
| API 31 이상 | 제한을 켜면 사용자가 이미 실행 중이던 VPN 연결이 끊깁니다 |
API 31 행이 바로 배포 중간에 사람들을 놀라게 하는 항목입니다. 그 기기에서 적용은 겉치레가 아니라 이미 동작하던 터널을 끊습니다. 조용한 설정 변경이 아니라 눈에 보이는 사건으로 계획하십시오.
API 24 행이 당신을 구합니다. 소유자가 구성한 상시 연결 VPN은 제한을 견디며, 그렇게 해서 승인된 경로가 애초에 사용 가능하게 유지됩니다.
점검 4: 승인된 경로를 살려 두십시오
조직의 상시 연결 VPN은 제한을 적용하기 전에 구성하고 시험하십시오. 적용한 뒤가 아닙니다. 먼저 적용하면 기기는 터널과, 그것을 진단하는 데 쓸 도구를 동시에 잃습니다.
세 가지를 명시적으로 확인하십시오. 상시 연결 VPN이 사용자가 아니라 소유자에 의해 만들어지는지, 적용 후 그 기기에서 시작되는지, 재부팅을 견디는지. 손으로만 올라오는 터널은 승인된 경로가 아닙니다. 지원 티켓 대기열입니다.
터널이 올라와 있는지에 의존하지 않는 복구 경로를 두십시오. 관리 콘솔, 로컬 관리자 경로, 대역 외 채널 모두 동작합니다. 동작하지 않는 것은 정책이 방금 비활성화한 연결을 통해 고장 난 정책을 고칠 수 있다고 가정하는 것입니다.
점검 5: 확인하고, 그다음 한계를 정직하게 설명하십시오
실제 기기와 실제 계정으로 시험하십시오. 사용자가 VPN을 추가하거나 시작할 수 없음을 확인하고, 승인된 터널이 연결되어 트래픽을 나르는지 확인하고, 개인 프로필이 문서대로 동작하는지 확인하십시오. 그 세 결과가 수용 기준입니다.
그다음 무엇을 주장하는지 조심하십시오. 이 제한은 Android의 VPN 기능을 지배합니다. 허용된 모든 연결을 검사된 프로토콜로 바꾸지 않으며, 앱이 명시적 프록시를 통해 자기 요청을 보내는 것을 막지도 않습니다. UDP 500, UDP 4500과 하나의 OpenVPN 포트를 막는 것은 같은 통제가 아닙니다. 트래픽은 평범해 보이는 HTTPS를 포함해 여러 전송을 통해 지나갈 수 있기 때문입니다.
요구가 VPN 기능보다 넓다면, 앱 배포 정책, 계정 통제, 환경에 맞는 네트워크 제한과 결합하십시오. 그리고 범위 밖에 남는 것을 기록해 두어, 다음 감사에서 누구도 부분적 제한을 완전한 것으로 되풀이하지 않게 하십시오.