분실한 VPN 장치를 해지하는 방법: 키, 인증서, 계정
분실한 장치는 동시에 세 가지 신원입니다. WireGuard 피어 키, 클라이언트 인증서, 계정 세션입니다. 서버가 검사하는 신원을 해지하세요.
노트북이 사라졌는데 VPN은 여전히 그것을 클라이언트로 나열합니다. 긴급한 질문은 더 이상 손에 없는 기계에서 프로필을 어떻게 지우느냐가 아니라, 서버가 아직 어떤 신원을 받아들이느냐입니다. WireGuard는 공개 키를 검사하고, PKI 기반 OpenVPN 구성은 클라이언트 인증서를 검사하며, SSO를 쓰는 VPN은 계정과 그 세션 토큰을 검사합니다. 이 셋은 서로 다른 곳에서 다른 속도로 해지되며, 하나만 고치고 나머지를 무시하는 것이 분실한 장치가 계속 연결된 채로 남는 방식입니다.
세 가지 신원과 각각이 통제하는 것
각각의 방식은 다른 질문에 답합니다. 피어 키는 이것이 당신이 등록한 기계인지에 답합니다. 인증서는 당신의 CA가 서명했고 해지되지 않았는지에 답합니다. 계정은 이 사람이 충분히 최근에 인증했는지에 답합니다. 두 가지를 겹치는 배포, 예를 들어 인증서와 디렉터리 로그인을 함께 쓰는 경우는 장치에 무언가를 발급한 모든 계층이 그것을 받아들이지 말라는 지시를 받았을 때에만 문을 닫습니다.
실무의 함정은 사라진 기계가 각 자격 증명의 개인 절반을 들고 있다는 것입니다. 그래서 로컬에서 무엇을 해도 서버에 닿지 않습니다.
WireGuard: 해지 목록이 없으므로 피어를 제거하세요
WireGuard는 거부 목록을 두지 않습니다. 인터페이스는 피어로 설정된 공개 키만 정확히 받아들이므로 해지는 곧 삭제입니다. wg set wg0 peer <public-key> remove 를 실행하세요. 이 형식은 wg(8) 에 문서화되어 있습니다. 그런 다음 wg0.conf 에서 일치하는 [Peer] 블록을 삭제하세요. 둘 다 하세요. 실행 중에만 제거하면 다음 재부팅이나 구성 다시 불러오기까지 유지되고, 그때 파일이 키를 되돌려 놓습니다.
기존 세션은 죽는 데 타이머가 필요하지 않습니다. 피어를 제거하면 그 핸드셰이크와 키 자료가 버려지므로, 유효한 키 쌍이 다시 필요해지는 즉시 트래픽이 멈춥니다. 서버에서 wg show wg0 latest-handshakes 를 확인하세요. 분실한 키의 항목은 사라져야 하고 사라진 채로 있어야 하며, 다른 피어들은 최근 에포크를 계속 보고합니다.
한 가지 주의점은 보이는 것보다 중요합니다. 누군가 구성 파일 하나를 복사해서 분실한 장치가 다른 장치들과 키를 공유했다면, 그 키를 제거하면 모두 연결이 끊깁니다. 그래도 올바른 조치이며, 이후에는 공유 키를 복구하는 대신 장치별로 키를 다시 발급합니다.
인증서: CRL은 데몬이 읽을 때만 효력이 있습니다
인증서 기반 접근은 사람들이 건너뛰는 단계를 하나 더합니다. easyrsa revoke laptop-01 는 CA 데이터베이스에서 인증서를 해지로 표시하지만, VPN은 그 데이터베이스에서 아무것도 배우지 않습니다. 그다음 easyrsa gen-crl 를 실행해 crl.pem 를 쓰고, 서버의 crl-verify 옵션에 적힌 경로로 복사하고, 실행 중인 데몬이 새 파일을 쓰는지 확인합니다. CRL을 다시 만들고 배포하지 않은 해지는 아무 효과가 없습니다.
타이밍이 나머지 절반입니다. CRL은 클라이언트가 연결하거나 재협상할 때 조회되므로, 이미 성립된 터널은 그때까지 계속 전달할 수 있습니다. 장치를 즉시 차단해야 한다면 다음 핸드셰이크를 기다리지 말고 OpenVPN 관리 인터페이스로 그 세션을 명시적으로 종료하세요. 서비스를 다시 불러오거나 재시작하는 일은 배포가 CRL을 어떻게 불러오는지에 따라 다르지만, 변경의 일부이며 선택적 추가 작업이 아닙니다.
다른 기계에서 검증할 가치가 있습니다. 해지된 인증서를 제시하고 핸드셰이크 실패를 기대하세요. 보통 VERIFY ERROR: depth=0, error=certificate revoked 입니다. 그래도 연결이 성공하면 클라이언트는 당신이 갱신한 것과 다른 CRL을 읽고 있습니다.
계정과 세션: 비활성화는 축출과 다릅니다
디렉터리나 SSO 로그인은 인증 시점에 검사됩니다. 계정을 비활성화하면 다음 로그인이 차단되지만, 갱신 토큰과 이미 성립된 터널은 만료될 때까지 계속 동작할 수 있습니다. 그 사용자의 세션과 토큰을 해지하거나, 신원 제공자가 지원한다면 세션 버전을 올리세요. 분실한 장치는 MFA 등록에서도 제거하세요. 등록된 인증기는 그 자체로 접근 경로입니다.
RADIUS 기반 VPN은 연결 해제 메시지나 권한 변경을 보내 활성 세션을 끊을 수 있지만, 모든 네트워크 접속 서버가 이를 따르지는 않습니다. 의심스러우면 서버 쪽에서 사용자의 세션을 종료하고 로그에서 이전 세션이 닫혔는지 확인하세요.
다음 한 시간의 작업 순서
클라이언트가 아니라 인벤터리에서 시작하세요. 장치에 묶인 모든 신원을 나열하세요. 피어 키, 인증서 일련번호, 계정 중 무엇이든 포함합니다. 연결이 만들어지는 순서, 즉 계정 먼저, 그다음 인증서, 그다음 피어 순으로 각 발급 시스템에서 해지하세요. 그런 다음 당신이 통제하는 기계에서 거부를 증명하세요.
두 가지 후속 조치는 잊기 쉽습니다. 첫째, 장치가 갖고 있던 다른 모든 것을 교체하세요. 특히 SSH 키, 클라우드 콘솔 자격 증명, 공유 WireGuard 사전 공유 키입니다. 둘째, 구성 관리, 스냅숏, 골든 이미지가 다음 재구축에서 제거한 클라이언트를 다시 들여오지 못하는지 확인하세요.
오래 가는 해결책은 장치당 하나의 신원입니다. 모든 노트북이 자기 피어 키나 인증서를 지니면, 분실의 대가는 함대 전체를 다시 구축하는 것이 아니라 해지 명령 한 번과 재발급 한 번입니다.