VPN 사용자에게 필요한 것은 프린터 하나이지 LAN 전체가 아니다
프린터 전용 VPN에는 좁은 통과 규칙 하나와 경로가 필요하며 LAN 구성원 자격은 필요하지 않다. 좁은 규칙을 신뢰하기 전에 실제 적용되는 규칙 순서를 확인해야 한다.
규칙은 옳아 보이는데 프린터는 여전히 거부한다. 또는 프린터가 작동하고 같은 사용자가 파일 서버에도 접근할 수 있는데, 이쪽이 더 나쁘다. 두 결과 모두 대개 같은 곳에서 나온다: 좁은 규칙이 이미 더 넓은 무언가를 허용하던 규칙 집합에 추가된 것이다. 실제 순서를 읽으면 새 규칙을 쓰기 전에 결과를 설명할 수 있다.
증상: 좁은 규칙이 아무것도 바꾸지 않았다
전용 VPN 풀, 프린터 주소 하나, TCP 631의 통과 규칙은 합리적인 설계다. 그것이 전혀 변화를 만들지 않을 때 첫 번째 의심은 트래픽이 그 규칙에 도달한 적이 없다는 것이어야 한다. 규칙은 평가 순서에서 자기 위치에 도달한 트래픽에 대해서만 결정한다. 필드는 확인하기 쉽고 실패의 원인이 되는 경우는 드물다.
반대 증상은 놓치기 쉽다. 인쇄 작업은 성공하고, 이 사용자가 절대 접근해서는 안 되는 파일 공유로의 연결도 성공한다. 그것은 더 앞선 무언가가 이미 LAN을 허용했다는 뜻이다.
두 증상 모두 새 규칙의 필드가 아니라 순서를 가리킨다. 하나는 한 번도 일치하지 않은 규칙이고, 다른 하나는 너무 일찍 일치한 규칙이다.
트래픽이 실제로 닿는 규칙 집합
pfSense는 인터페이스별로 규칙을 평가하고, OpenVPN은 자체 탭이 있어 그 규칙이 모든 서버와 클라이언트 인스턴스에 적용된다. 이 규칙들은 특정 OpenVPN 인터페이스에 할당된 규칙보다 먼저 처리된다. 따라서 OpenVPN 탭에 남겨 둔 넓은 허용은 인터페이스 탭이 무엇이라 하든 이 사용자에게도 적용된다. 그 순서를 변경 기록에 복사해 두면 검토에서 GUI를 열지 않고도 확인할 수 있다.
그래서 새 좁은 허용은 접근을 빼앗을 수 없다. 방화벽 규칙은 권한을 더하며, 앞선 일치에서 그것을 가져가지 않는다.
실제 목록을 위에서부터 읽고 트래픽과 일치하는 첫 규칙에서 멈춘다. 그 첫 일치가 결정이며, 그 아래의 모든 것은 그 흐름에 도달할 수 없다.
인쇄 작업에서 통과 규칙을 작성한다
프린터가 아니라 작업에서 시작한다. 사용자에게는 프린터 주소의 인쇄 서비스가 필요하므로 규칙은 그 주소, 그 프로토콜, 그 포트를 지정한다. VPN 풀의 별칭과 프린터의 별칭이 규칙을 읽기 쉽게 유지한다.
마법사를 기쁘게 하려고 검색 또는 관리 포트를 추가하려는 유혹을 물리친다. 프린터 전체를 허용하는 규칙은 인쇄 대기열을 허용하는 규칙과 다른 정책이다.
프린터 자체의 인증은 그대로 둔다. 네트워크 허용이 그것을 대체하지 않는다. 대기열 수준의 계정이 누가 무엇을 인쇄할 수 있는지에 대한 올바른 통제다.
여섯 가지 값이 의도 전체를 담는다: 동작으로서의 허용, 패밀리로서의 IPv4, 프로토콜로서의 TCP, 출발지로서의 풀 별칭, 목적지로서의 프린터 별칭, 포트로서의 631이다. 이 여섯을 넘어서는 것은 요청된 정책과 다른 정책이다.
LAN 허용 없이 클라이언트에 경로를 준다
클라이언트에는 프린터 주소로 가는 경로가 필요하고, 사무실 쪽에는 VPN 풀로 가는 응답 경로가 필요하다. 단일 /32를 푸시하면 클라이언트 구성이 좁게 유지되어 문제 해결에 도움이 된다. 그것은 권한 부여의 경계가 아니다, 클라이언트가 스스로 경로를 추가할 수 있기 때문이다.
대기열을 이름으로 지정한다면 리졸버 의존성을 별도로 정의한다. 이름 하나를 해석하기 위해 전체 LAN을 허용하는 것은 작업이 요구하는 것보다 훨씬 큰 변경이다.
풀로 되돌리는 라우팅과 출발지 변환 중에서 의식적으로 선택한다. 둘 다 작동하며, 각각 로그에서 다른 것을 감춘다.
작업뿐 아니라 거부도 시험한다
VPN 사용자로부터 작고 민감하지 않은 작업을 하나 제출한 다음, 거부되어야 할 LAN 자원과 방화벽 자체의 관리 페이지를 시도한다. 세 가지 시험은 같은 세션에 속한다, 정책을 전체로 보는 유일한 방법이기 때문이다. 인쇄 작업이 성공했다는 것만으로는 경계에 대해 거의 아무것도 증명하지 못한다.
배포를 프린터 전용이라고 부르기 전에 IPv6와 다른 활성 VPN 경로를 검토한다. 한 주소 패밀리에서 좁은 규칙 집합이 다른 패밀리에서는 완전히 열려 있을 수 있다.