가정용 VPN 공개: 실제로 무엇을 노출하는가
포트 하나를 연 것이지 서비스 하나를 연 것이 아니다. 터널을 신뢰하기 전에 공용 리스너, 허용된 클라이언트, 사설 자원을 각각 검토하라.
터널을 위해 포트 하나를 전달하고 변경 범위가 좁다고 스스로에게 말한다. 실제로 포트는 패킷만 받아들이며, 그 뒤에 있는 것이 노출이다. 노출을 결정하는 것은 공용 측에서 수신하는 소켓, 터널이 받아들이는 신원, 그리고 그 신원이 닿을 수 있는 목적지다. 각각은 자기 답이 필요하다, 하나에서 신중한 선택이 다른 것을 제한하지 않기 때문이다.
포트 전달은 서비스가 아니다
라우터 규칙은 패킷을 호스트 쪽으로 옮기지만, 그것을 읽는 프로세스를 지명하지 않는다. 전달 페이지와 수신 소켓은 다른 곳에 있으므로 규칙이 더 이상 서비스를 실행하지 않는 기계를 가리킬 수 있다. 실제로 무엇이 응답하는지 알려면 호스트에서 수신 소켓마다 소유 프로세스를 나열하는 ss -lntup 를 확인한다. 그런 다음 그 프로세스를 구성 요소, 버전, 소유자와 맞춘다.
기억하는 규칙을 삭제해도 문은 닫히지 않는다. UPnP 매핑이 스스로 추가되었을 수 있고, IPv4 항목이 사라진 뒤에도 IPv6 주소가 도달 가능할 수 있으며, 다른 기계에 두 번째 공개 방법이 있을 수 있다. 라우터의 UPnP 매핑 목록과 정적 항목을 읽고, 네트워크 밖에서 시험한다.
로그인은 LAN 권한이 아니다
터널은 누가 연결할 수 있는지 정하고, 자원은 연결된 클라이언트가 무엇을 열 수 있는지 정한다. NIST의 제로 트러스트 지침도 네트워크 규모에서 같은 분리를 하며, 주소는 권한 부여에 대해 아무것도 증명하지 않는다. 등록된 노트북 하나에 작업 하나를 주고, 예를 들어 이름이 지정된 호스트의 파일 공유를 읽게 하고, 그 쌍을 적어 둔다. 터널 주소가 집의 나머지 부분에 대한 관리자 접근을 상속해서는 안 된다.
요약이 빠뜨리는 경로, 즉 클라이언트 간 트래픽, 브리지 멤버십, 인터넷 전달, 소스 변환도 살펴본다. 각각은 작성한 작업이 결코 언급하지 않는 두 시스템을 연결할 수 있다. 작업에 필요 없는 것은 끄고, 클라이언트가 여전히 닿을 수 있는 곳을 나열한다.
깨끗한 스캔은 거의 아무것도 증명하지 않는다
열린 포트는 하나의 주소와 하나의 프로토콜에 관한 사실이고, 성공한 로그인은 하나의 자격 증명에 관한 사실이다. 둘 다 다음에 무슨 일이 일어나는지 말하지 않는다. 의도한 호스트에서 의도한 작업을 시험한 뒤, 등록된 적 없는 신원, 아무도 승인하지 않은 서비스, 비공개로 남아야 할 관리 인터페이스를 시도한다. 마지막 시험이 보통 실패한다.
두 주소 체계와 공개하는 모든 경로를 시험한다. IPv4 주소 스캔은 수신 중인 IPv6 서비스에 대해 아무것도 말하지 않고, 내부 시험은 NAT 루프백 문제나 상류 필터를 볼 수 없다. 적어도 한 번은 외부에서, 같은 라우터로 돌아오지 않는 연결로 확인한다.
노출을 적어 둔다
짧은 표는 검토를 다음 사람이 감사할 수 있는 것으로 바꾼다. 바깥에서 안으로, 도달 가능한 서비스마다 한 행씩 채우고, 구성과 함께 보관하며 채팅 스레드에 두지 않는다. 행에 소유자가 없으면 그것은 발견 사항이다.
| Public address and port | Receiving host | Process on the socket | Intended actor | Who may reach it |
|---|---|---|---|---|
| 203.0.113.10:51820 | nas | wg-quick@wg0 | my laptop | enrolled peers only |
“VPN”이라고만 말하는 행은 아직 행이 아니다. 행에는 감사자나 공격자가 시험할 소켓, 호스트, 신원, 목적지가 필요하다.
필요해지기 전에 철수를 계획한다
취소할 수 없는 터널은 영구적인 문이다. 기기 자격 증명을 철회하고, 활성 세션을 끝내고, 업그레이드가 서비스를 깨뜨린 뒤 접근을 복구하는 방법을 미리 정한다. 복구 경로는, 고칠 것이 바로 터널이기 때문에, 터널을 통과하지 않게 유지한다. 그 기계 없이 닿을 수 있는 곳에 보관한다.
의도한 목적지가 작동하고 원하지 않는 목적지가 작동하지 않을 때 검토가 끝난다. 취약점이 없다는 보장은 아니며, 스캐너의 초록 표시가 둘 중 어느 것도 대신하지 않는다. 표와 복구 메모를 이 설정을 물려받는 사람에게 넘긴다.