导出按钮给你的只是一个文件,而这个文件只是准备工作里最小的一块。真正能救回一个晚上的,是知道这个文件漏掉了哪些东西、当坏掉的正是隧道本身时你 如何回到路由器,以及恢复操作不会撤销什么。打开 VPN 页面之前,先把这三件事记下来。这些工作没有一件难,所以它才总被推后。

导出文件里到底有什么

在多数路由器固件上,导出的是一个设置包:接口、防火墙规则、DHCP 保留地址、VPN 配置,通常还有随之附带的私钥。所以这单个文件里含有密钥材料,这会改变它能放在哪里、谁能读取。

它也往往并不完整。配置档案可能引用密钥材料、证书文件,或是设置导出并不携带的软件包;在一台刚刷机的设备上恢复,会把引用恢复回来,却带不回被引用的对象。请阅读固件文档里关于导出范围的说明,而不要假定这个文件就是工作状态的磁盘镜像。

如果固件提供加密,就加密该文件,并放在不是路由器本机的地方。只居住在被它描述的设备上的备份,会在你最需要的那一刻消失。把导出文件当作它本来的凭据库来对待,因为到了别人手里,它就正是这个。

把周边的依赖一并记下

设置文件如果不知道属于什么,就毫无意义。记下型号、固件版本、所用的协议,以及这台路由器承担的角色。把这些事实写在不需要路由器也能读回来的地方。

四个细节决定一次恢复能否成功:

ItemWhere to record itWhat breaks without it
Firmware versionNext to the backup fileRestore rejected or silently partial
VPN keys and certificatesSeparate encrypted copyDevice restored, tunnel cannot authenticate
WAN and LAN addressingPaper or offline noteCannot reach the admin page afterwards
Out-of-band accessConsole or management portNo path back in when the tunnel fails

最后一行恰恰是大家会跳过的。如果你通往路由器的唯一路径,就是那条你即将重新配置的隧道,那么你已经安排好在最糟的时刻把自己锁在门外。

先把回退路径写下来

在改动任何东西之前,先写下如果路由器失联你会走的步骤:用哪根网线、哪个端口、哪个地址、哪个账号。然后在路由器还能工作的时候,把这些步骤实际走一遍。趁一切正常时确认控制台或管理界面有响应,因为等故障发生后才去发现控制台是坏的,会把十分钟的回退变成一次跑现场。

笔记里要写上恢复流程本身,而不只是文件名。读到它的人可能就是你:疲惫、时间不合适,完全不记得文件去了哪里。

恢复之后,核对究竟回来了什么

恢复完成不等于网络可用。要检查那些会悄悄回落到默认值的部分:DNS 解析器设置、指向旧接口的防火墙规则,以及任何指向隧道网关的路由。打开实验期间被修改过的规则,与导出文件里的内容作对比。半夜加上、早上就被忘掉的宽松放行规则,会在每一次恢复之后继续存在,因为它就在你刚刚重新载入的那个文件里。

在 OpenWrt 风格的设备上,有用的命令会打印出正在运行的隧道、路由表,以及路由器自身返回的解析结果:

wg show
ip -4 route
nslookup example.com 192.168.1.1

然后从普通客户端测试,而不是从路由器上测试。设备上握手成功、客户端却无法解析域名,这是策略问题;除了手里拿着控制台的人,所有人都会觉得这是坏掉的 VPN。

恢复不能修复的东西

恢复一个密钥不会吊销任何东西,也不会告诉你存在多少份副本。如果回退的原因是设备丢失、导出文件被共享,或怀疑遭到入侵,那么只要有副本存在,旧密钥就依然有效,而恢复的配置会把它重新投入使用。

按服务商支持的流程轮换或吊销 peer,然后更新路由器,以及仍然持有旧材料的客户端。备份代表的是一个已知可用的状态,而不是一个已知安全的状态;当一台设备丢失时,这个差别恰恰要紧。

相关文章