메일은 계속 질의하고 VPN은 내려가 있는데도 계정은 여전히 동기화된다. 앱은 설정된 대로 동작하고 있고, 일반적인 메일 프로필 어디에도 서버가 터널을 통해서만 닿는다고 쓰여 있지 않다. 그래서 서비스가 직접 클라이언트를 거부해야 하는지, 아니면 Mac이 아예 시도하지 않아야 하는지라는 서로 다른 두 요구가 남는데, 둘을 혼동하기 쉽다.

제품을 고르기 전에 요구를 고르십시오. 서버 규칙과 클라이언트 규칙은 서로 다른 지점에서 실패하고, 다른 증거를 만들며, 다른 담당자에게 속한다. 둘 다 적용하는 것은 두 명제가 모두 참일 때 타당하지만, 하나가 다른 하나를 대신하지는 않는다. 두 요구 모두 정당하지만 같은 통제는 아니다.

증상은 Mac처럼 보이지만 서버가 유출 지점일 수 있다

메일이 터널 밖에서 동기화될 때는 서버가 무엇을 받아들이는지부터 보십시오. 메일 리스너가 인터넷에서 오는 직접 연결에 응답한다면, 클라이언트 쪽의 어떤 편의 설정도 그 사실을 바꾸지 않는다. Mac은 아직 열려 있는 서비스에 대해 정상적으로 행동하고 있다.

메일 관리자에게 서비스가 어떤 출발지 주소를 보는지 물으십시오. VPN 게이트웨이, 역방향 프록시, 로드 밸런서가 클라이언트 주소를 변환할 수 있으므로 VPN 설정의 주소 풀이 메일 프로세스에 도착하는 것과 일치하지 않을 수 있다. 잘못된 출발지에 대해 쓴 규칙은 모두를 막거나 아무도 막지 않는다.

그 답은 서비스가 VPN 클라이언트를 구분할 수 있는지도 알려 준다. 모든 클라이언트가 같은 프록시 주소로 들어온다면 출발지 기반 허용은 이들을 분리할 수 없고, 요구는 인증이나 클라이언트 쪽으로 옮겨야 한다.

서버 쪽 허용: 앱이 아니라 출발지를 거부하십시오

호스트 또는 네트워크 방화벽은 인증과 TLS를 그대로 둔 채 메일 리스너를 승인된 출발지 범위로 제한할 수 있다. 원격 주소, 서브넷, 범위를 일치시키는 규칙 조건이 일반적인 구성 요소이며, 정확한 문법은 서버의 방화벽 제품에 속하고 메일 앱에는 속하지 않는다.

요구가 «서비스는 직접 클라이언트를 응대하지 않아야 한다»일 때 이것이 가장 강한 경계다. 사용자가 다른 메일 클라이언트를 설치해도 거부가 인증 전에 일어나기 때문에 유지된다. VPN 정책을 무시하는 Mac에서도 견딘다.

그 한계도 똑같이 중요하다. 거부된 연결은 서비스가 세션을 거부했음을 증명하지만, Mac이 시도하지 않았음을 증명하지는 않는다. DNS 확인, 이전 로드 밸런서로의 TCP SYN, 실패 후 재시도는 모두 서버 규칙에 도달하기 전에 일어날 수 있다. 요구가 접근이 아니라 시도의 노출에 관한 것이라면 서버 쪽 허용은 통제의 절반일 뿐이다.

클라이언트 쪽 강제: 터널만이 아니라 시도를 막으십시오

클라이언트 쪽 규칙은 메일을 열 때 터널을 시작하는 것만으로는 부족하고 트래픽을 금지해야 한다. 메일 도메인에 대한 활성화 트리거는 적절한 순간에 VPN을 올릴 수 있지만, 터널이 내려가 있는 동안이나 실패한 뒤에 무슨 일이 일어나는지는 정의하지 않는다.

엔드포인트 제품이 지원하는 차단 정책을 사용하고 그 범위를 의도적으로 정하십시오. 앱 수준 규칙은 그 메일 앱의 모든 계정을 포함하며 개인 계정도 마찬가지다. 대상 수준 규칙은 업무 계정의 IMAP, 제출, 인증 엔드포인트를 지목해야 하고, 그 주소가 바뀌어도 계속 동작해야 한다.

두 주소 체계와 기존 세션을 모두 포함하십시오. 새 IPv4 연결을 차단하면서 IPv6나 이미 설정된 소켓을 그대로 두는 정책은 무작위로 보이는 간헐적 동기화를 만든다. 네트워크 변경과 수면 주기는 같은 시험의 일부다.

앱 수준과 대상 수준 규칙은 영향 범위가 다르다

앱 수준 차단은 이해하기 단순하고, 터널 없이는 메일에서 어떤 트래픽도 나가지 않는다. 동시에 같은 앱에 정책과 무관한 개인 계정이 들어 있을 수 있어 거칠다. 사용자는 이것을 먼저 알아차리고 고장 난 메일 앱으로 보고한다.

대상 수준 차단은 더 좁고 유지하기 어렵다. 계정이 쓰는 엔드포인트 전체, 검색과 인증 서비스를 포함한 집합과 그것을 갱신하는 절차가 필요하다. 하나를 빠뜨리면 계정이 반만 동작하고, 너무 많이 넣으면 무관한 메일이 멈춘다.

요구의 문구에 따라 고르십시오. «이 업무 계정은 직접 연결해서는 안 된다»는 대상 범위를 가리킨다. «이 Mac은 VPN 밖에서 메일을 돌려서는 안 된다»는 소유자가 개인 계정의 부작용을 받아들인다는 조건에서 더 넓은 앱 규칙을 정당화한다.

거부와 부재를 따로 시험하십시오

전용 시험 계정으로 VPN을 통해 연결하고 정상 동작을 확인하십시오. 그다음 연결을 끊고, 한 번은 서버가 로그인을 거부하는지, 다른 한 번은 Mac이 연결을 아예 시도하는지 보기 위해 두 번 시험하십시오. 이것은 서로 다른 관찰이며 서로 다른 로그에 속한다.

연결이 끊긴 동안 SYN이나 DNS 질의에 대한 클라이언트 쪽 증거를, 거부되거나 수락된 세션에 대해서는 서버 로그를 보십시오. 서버가 거부하는데 클라이언트가 계속 시도한다면 서버 규칙은 동작하고 클라이언트 규칙이 빠진 것이다. 클라이언트가 시도하지 않는데 서버가 다른 클라이언트를 계속 받아들인다면 경계는 정확히 두신 자리에 있다.

강제의 담당자, 서버가 실제로 보는 출발지 주소, 사용한 시험 계정을 기록하십시오. 다음 네트워크나 프록시 변경이 그 출발지를 옮길 수 있고, 관찰된 값을 지목한 메모는 한 번 더 추측하는 것보다 빨리 확인된다.

관련 글