목적이 작성자와 함께 떠난 우회는 유용성보다 오래 사는 것들이며, 잠금 정책은 다른 어떤 종류의 구성보다 그것들을 더 빨리 모은다. “로컬 네트워크 허용”이라고 쓰인 예외는 아무도 옹호할 수 없고 아무도 폐기할 수 없는 규칙이다. 그 뒤의 요구 사항이 그것을 추가한 사람과 함께 떠났기 때문이다. 이런 정책은 이유는 증발하고 위험만 남은 면제를 안고 실패한다. 범위, 실패 시 동작, 제거 단계를 써야 할 순간은 누군가 아직 이유를 기억하고 있을 때, 예외를 추가하는 그 순간이다.

이것은 메모에 무엇이 들어가야 하는지에 대한 결정이지, 채워 넣을 서식이 아니다. 아래 네 필드가 일 년 뒤 회의 없이 검토자가 규칙을 제거할 수 있는지를 결정한다. 각각은 그것이 없을 때 예측 가능한 비용이 있기 때문에 존재한다.

문서화되지 않은 우회가 결코 폐기되지 않는 이유

설명이 없는 우회는 테스트할 수 없으므로 안전하게 제거할 수 없다. 삭제는 위험해 보이고 유지는 무해해 보이기 때문에 모든 검토를 통과하며, 그것을 지나치는 검토는 다음 검토도 지나치기 쉽게 만든다. 비용은 감사가 왜 사설 대역이 면제되는지 묻기 전까지 보이지 않고, 그때쯤 답은 어깨를 으쓱하는 것이다.

기록은 사람들이 변경 창 안에서 실제로 쓸 수 있을 만큼 짧아야 한다. 트래픽에 한 줄, 그것이 제공하는 요구 사항에 한 줄.

범위를 트래픽으로 쓰기

애플리케이션 또는 목적지 대역, 관련된 주소 체계, 서비스와 포트, 규칙이 적용되는 네트워크 맥락을 나열하고, 그다음 승인자와 그것을 담고 있는 정확한 클라이언트 또는 플랫폼 설정을 지목하라. “프린터”는 의도다. “TCP 631에서 192.168.1.50으로, 홈 네트워크만”은 누군가 검증할 수 있는 범위다. “이것이 어디에 사는가”에 대한 답이 “MDM 프로필 어딘가”라면 기록은 끝나지 않았다. 파일 경로, 프로필 이름 또는 레지스트리 키가 설정이 있을 수 있는 위치에 대한 설명보다 낫다.

플랫폼이 애플리케이션별 규칙을 지원하는 곳에서는 주소 대역보다 그것을 선호하라. 하나의 애플리케이션이 터널을 우회하도록 허용하는 것이 사설 서브넷 전체를 면제하는 것보다 좁고, 기기가 새 주소로 옮겨가도 살아남기 때문이다. Android의 VpnService 가이드는 그 애플리케이션별 모델을 설명한다. 데스크톱 클라이언트는 자체 프로필 설정을 통해 같은 아이디어를 표현한다. 주소 기반 면제는 플랫폼이 더 좁은 것을 제공하지 않을 때의 대안이며, 그래서 더 날카로운 범위 줄이 필요하다.

네 가지 예외 유형, 네 가지 제거 위험

예외는 하나의 범주가 아니며, 제거는 서로 다른 결과를 낳는다. 두 유형 사이에서 한 줄을 공유하는 것은 프린터를 폐기하면서 연결 능력까지 폐기하는 방식이다.

KindTypical exampleRemoval risk
Endpoint bootstrapreaching the gateway before the tunnel existshigh: nothing comes up without it
Captive portalhotel or airport sign-in pagemedium: only matters on untrusted networks
Local deviceprinter, casting target, test instrumentlow: one service at one address
Excluded applicationan app that must not use the tunnelmedium: depends on the app's own behaviour

bootstrap, 포털, 기기, 애플리케이션 예외는 실제로 겹치더라도 별도 줄에 두라. 사설 대역 면제는 도달하려던 단 하나의 기기가 아니라 그 서브넷의 모든 이웃에게 조용히 접근을 준다. 그것이 옹호할 수 있는 범위와 바라기만 하는 범위의 차이다.

터널이 끊겼을 때 우회가 하는 일

세 가지 질문을 하고 답을 적어라. 그것이 잠금이 진짜인지를 결정하기 때문이다. 터널이 끊겼을 때 예외가 계속 쓸 수 있어야 하는가. 캡티브 포털이라면 그래야 하고, 그렇지 않으면 아무도 로그인할 수 없다. 반면 사설 자원이라면 보통 그래서는 안 되고, 그렇지 않으면 정책은 장식이다. 모든 네트워크에 적용되는가, 의도한 환경에서만 적용되는가. 홈 서브넷으로 한정된 규칙은 우연히 같은 대역을 쓰는 공용 네트워크에서 전혀 다르게 행동한다. 모든 답은 규칙과 메모를 함께 바꾸므로, 답하지 않고 남긴 질문은 나중에 다른 사람이 잘못 내릴 결정이다.

세 번째 질문은 목적지가 주소를 바꿀 때 무슨 일이 일어나는가이며, 여기서 도메인 기반과 주소 기반 면제가 갈린다. 도메인 기반 규칙은 이름 확인이 언제 일어나는지와 클라이언트가 결과를 어떻게 적용하는지에 달려 있어서, 관련 없어 보이는 변경 뒤에 조용히 일치를 멈출 수 있고, 실패는 낡은 면제가 아니라 고장 난 VPN처럼 보인다.

테스트하고, 다시 테스트하고, 제거 단계를 써라

허용된 경로에 무해한 테스트 하나와 가까운 거부 사례 하나를 써라. 프린터 페이지는 열리고 같은 서브넷의 파일 공유는 열리지 않는다. 그 쌍이 예외가 좁다는 것을 증명하며, 검토자가 원래 요청을 이해하지 않고도 반복할 수 있는 쌍이다. 그다음 재테스트 트리거를 설정하라. 다시 테스트되지 않는 예외는 그것이 쓰인 요구 사항에서 멀어지고, 그 이탈은 무언가 고장 나기 전까지 보이지 않는다.

마지막으로, 규칙을 소유한 구성 요소를 통해 제거하는 방법을 기록하고, 비밀은 메모 밖에 두라. 서비스와 경로를 설명하는 데 개인 키, 비밀번호, 누군가의 브라우징 기록은 결코 필요하지 않으며, 짧게 유지되는 목록이 그것을 쓴 사람보다 오래 산 임시 규칙보다 낫다.

관련 글