두 피어가 서브넷 전체를 보호하기로 합의하고, 누군가 그 합의를 그 안의 모든 서비스에 접근할 수 있는 허가로 읽는다. 그것이 바로 통념이다. 선택자는 터널이 실어 나를 의향이 있는 트래픽을 말할 뿐, 조직이 어떤 서비스를 허용하는지에 대해서는 아무것도 말하지 않는다. 두 장비가 넓은 주소 범위를 정당하게 협상하면서 그 안의 접근 정책이 두 개의 포트만 허용해도, 두 진술은 동시에 참이다.

보호 범위는 권한이 아니다

트래픽 선택자는 터널 합의의 일부다. 피어가 서로 무엇을 암호화할지 좁히거나 확인하며, 양쪽에 실어 나를 흐름이 많을 때 넓은 선택자가 운영하기에 가장 단순한 경우가 많다. 서비스 필터는 경로의 다른 지점에 있는 또 다른 제어이며, 패킷이 복호화된 뒤 실제로 무엇을 쓸 수 있는지를 정한다. 테스트 하나를 통과시키려고 필터를 없애는 것은 정책 결정을 사고로 바꾸는 일이다.

설계 문서에서 두 기록을 분리해 두어라. 선택자만 보는 독자는 결코 부여된 적 없는 권한을 추론하기 때문이다. 변경 기록의 두 줄이 그것을 막고, 뒤따르는 논쟁보다 시간이 덜 든다.

한 흐름을 양쪽 끝에서 서술하라

시작자, 응답자, 제시된 그대로의 출발지와 목적지, 프로토콜, 양쪽 포트를 적어라. 그다음 그 각각의 이름표를 다른 끝점을 위해 뒤집어라. 클라이언트의 임시 출발지 포트는 응답의 목적지 포트가 되고 원격 네트워크는 로컬 네트워크가 되기 때문이다. 그 뒤집기 없이 한쪽에서 다른 쪽으로 설정을 복사하는 것이 필터가 결국 정확히 잘못된 방향을 허용하게 되는 이유다. 표를 한 번 쓰고 그것으로 두 필터를 만들어라.

무엇이든 복사하기 전에 선택 모델을 합의하라. 정책 기반 설계와 경로 기반 설계는 같은 의도를 다른 객체로 표현하기 때문이다. 흐름 옆에 모델 이름을 적어라. 그렇지 않으면 다음 엔지니어가 결코 비교할 수 없었던 객체를 맞추느라 반나절을 보낼 것이다.

실제로 적용되는 필터를 찾아라

ASA에서 VPN 필터는 그룹 정책에 연결되어 복호화 이후와 암호화 이전 트래픽에 적용되는 ACL이다. Cisco의 그룹 정책 문서는 상속도 설명하며, 그룹 정책 값을 대체하는 사용자 수준 값을 포함한다. 따라서 편집한 ACL이 눈앞의 세션을 관장하는 ACL이 아닐 수 있다. 사용자 객체도 마찬가지이며, 뚜렷한 흔적을 거의 남기지 않고 그룹을 덮어쓸 수 있다.

변경했다고 기억하는 객체가 아니라 실제 유효한 세션을 살펴보고, 어느 정책 객체가 그것을 제공하는지 적어 두어라. 그 한 걸음이 필터는 맞는데 동작하지 않는다는 보고의 놀랍도록 많은 부분을 해결한다.

방향, 포트, 그리고 역방향 사례

문서화된 관례는 원격 네트워크 또는 할당된 원격 클라이언트 주소를 출발지 위치에, 로컬 네트워크를 목적지 위치에 두며, 응답은 주소 위치를 맞바꾸어 표현한다. 포트 규칙은 그 관례 위에 얹혀 있고 주소보다 더 많은 주의를 요한다.

문서화된 모델은 목적지 포트 규칙이 같은 출발지 포트를 쓰는 역방향 시작에 영향을 미치도록 허용할 수 있으며, 이는 필터가 무해한 응답이 붙은 단방향 요청 규칙이 아니라는 뜻이다. 시작의 두 방향을 분명히 따져 보고, 거부하려는 경우도 포함하라.

같은 문서는 필터를 초기 연결로 한정하므로, 검사 대상 애플리케이션이 여는 모든 보조 채널을 보편적으로 강제하는 것은 아니다. 완전한 정책에 그 범위가 필요하다면 그것은 목적을 넘겨 늘린 ACL이 아니라 별도의 경계에 속한다.

끝났다고 하기 전에 세 경우를 시험하라

의도한 흐름을 받아들이고, 정책이 금지하는 서비스를 거부하고, 따져 본 역방향 사례를 연습하라. 배포할 것과 같은 신원과 선택자로 승인된 계획 아래에서 실행하라. 허용된 서비스가 동작한다는 것만 보여 주는 시험은 터널을 증명할 뿐 정책을 증명하지 않는다.

협상된 범위와 접근 결정을 두 기록으로 유지하라. VPN이 무엇을 허용하는지 설명하려면 둘 다 필요하기 때문이다.

관련 글