你的笔记本丢了,而 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 预共享密钥。第二,检查配置管理、快照或黄金镜像不会在下次重建时把已移除的客户端带回来。

持久的做法是一台设备一个身份。当每台笔记本各自携带对等密钥或证书时,丢失的代价是一条吊销命令和一次重新签发,而不是重建整个机队。

相关文章