
家庭开源网关 08|防火墙、远程访问、备份恢复与长期运维
围绕防火墙、WireGuard、IoT 隔离、升级、备份与备用启动介质,建立一套可长期运行、可监控、可快速恢复的家庭网关运维方案。
家庭开源网关 08|防火墙、远程访问、备份恢复与长期运维
家庭开源网关系列 · 第 8/8 篇
家庭网关稳定运行一周,只能证明当前配置暂时可用。真正的长期运维还要回答:管理面是否暴露、远程访问怎样进入、升级失败如何回退、存储损坏后多久恢复,以及代理或服务器停止时基础网络是否仍然存在。
网关是全家互联网出口。它的安全和恢复方案应当比普通家庭服务更简单、更保守。
先保护管理面
基础设置包括:
- 首次登录立即设置强密码;
- 禁止 WAN 侧直接访问 LuCI 和 SSH;
- SSH 优先使用密钥,并限制密码登录和管理来源;
- 管理设备放在可信 LAN 或专用管理 VLAN;
- 不安装来源不明的整合固件、脚本和二进制包;
- 定期检查实际监听端口与防火墙规则。
OpenWrt 使用 zone 表达 LAN、WAN 等区域,并由 firewall4 生成 nftables 规则。默认思路是允许 LAN 主动访问 WAN,拒绝 WAN 主动进入 LAN。需要额外放行时,应写最小、明确的规则,而不是整体降低 WAN 区域策略。
每条入站规则至少写清源区域、目标地址、协议、端口和用途。临时排障规则也要设置删除日期或记录,否则“先全放开再说”很容易成为永久配置。修改后分别从 LAN、访客网络、VPN 和真正的外部网络测试,不能只在内网访问公网域名来判断端口是否暴露。
管理面还包括交换机、AP、虚拟化宿主机、NAS 和容器控制台。即使 OpenWrt 本身没有暴露,若同一管理 VLAN 中的其他后台仍使用默认密码或允许访客访问,整体边界依然不安全。
远程访问优先进入 VPN
在开放端口前,先确认家庭网络是否具有公网 IPv4、处于运营商 CGNAT,或者可以使用公网 IPv6。
远程管理优先通过 WireGuard 等加密隧道进入家庭 LAN,不应直接暴露 LuCI、SSH、SMB 或 Docker API。OpenWrt WireGuard Server 文档把“无需把 LAN 服务直接做端口转发”列为主要目标之一。
确实需要端口转发时:
- 只开放必要端口和协议。
- 应用层启用身份认证与 TLS。
- 保持应用和依赖更新。
- 检查 IPv4 与 IPv6 两套入站策略。
- 不把消费级路由器中的“DMZ 主机”误解成安全隔离区。
UPnP/NAT-PMP 可以让应用自动申请映射,但也扩大动态暴露面。主网关不需要的自动映射功能应当关闭。
公网地址变化时,可以使用 DDNS 更新域名,但 DDNS 只解决“地址在哪里”,不提供访问控制。处于 CGNAT 下时,DDNS 也不会自动获得可入站的公网 IPv4。公网 IPv6 可达时,仍需为 WireGuard 或目标服务编写明确的 IPv6 防火墙规则。
远程接入上线后应验证三种状态:正常隧道能访问被授权资源;未授权客户端不能进入;隧道服务停止时,不会意外开放备用管理端口。密钥丢失或设备转让时,要能撤销单个客户端,而不是更换全网配置。
IoT 与访客默认不访问可信设备
摄像头、智能插座和来宾设备不应默认访问 NAS、路由器后台与可信电脑。
基础方案是独立访客 Wi-Fi;进阶方案使用 VLAN 和防火墙:
- 可信网络可以访问家庭服务器;
- IoT 只访问互联网和必要控制器;
- 访客仅访问互联网,并隔离其他客户端;
- 服务器只开放实际使用的端口;
- 管理 VLAN 只允许管理员终端进入。
如果 Home Assistant、投屏或发现协议需要跨 VLAN,单独添加 mDNS/组播中继和有限方向的放行,不要把整个隔离策略改成双向允许。
DNS 与代理中的敏感信息
订阅、节点和 VPN 配置可能包含访问密钥。需要注意:
- 限制配置文件权限;
- 不上传到公共仓库或普通网盘分享链接;
- 代理管理页面不暴露到 WAN;
- 只安装与当前系统分支和架构匹配的软件包;
- 备份密钥时使用受控的加密存储。
代理和加密隧道的使用还应遵守所在地法律、运营商条款和目标服务规则。
把防火墙规则变成可维护的访问矩阵
规则数量增加后,不要只依赖 LuCI 页面记忆。用表格记录来源、目标、端口、理由和负责人:
| 来源 | 目标 | 允许内容 | 理由 |
|---|---|---|---|
| 可信 LAN | NAS | SMB/HTTPS 等必要服务 | 日常文件与管理 |
| IoT VLAN | Home Assistant | 指定控制端口 | 自动化控制 |
| 访客 VLAN | WAN | DNS、Web 等出站 | 仅提供互联网 |
| WireGuard | 管理 VLAN | LuCI/SSH,限制客户端 | 远程维护 |
| WAN | 家庭 LAN | 默认拒绝 | 不直接暴露内部服务 |
每次新增规则都能在矩阵中找到理由;设备退役时,沿着记录删除对应例外。这样比长期积累无法解释的端口号更安全。
分阶段备份,而不是只保存最后一次
推荐保留四个状态:
01-base-network.tar.gz
02-wan-working.tar.gz
03-proxy-working.tar.gz
04-production-stable.tar.gz
备份内容应至少包括:
- UCI 配置;
- WAN、PPPoE、MTU 与 IPv6 参数;
- 静态 DHCP 租约;
- VLAN 与防火墙访问矩阵;
- 已安装包清单;
- 代理/VPN 配置与密钥的安全副本;
- 当前可回退镜像与校验值。
不要只把备份放在网关内部存储。存储损坏时,内部备份和运行系统会一起丢失。
备份可以分成四层:
| 层次 | 内容 | 作用 |
|---|---|---|
| 配置备份 | UCI、租约、VLAN、防火墙 | 恢复网络逻辑 |
| 软件清单 | 包名、版本、源和自定义脚本说明 | 重建附加能力 |
| 系统镜像 | 当前版本与可回退版本、校验值 | 重新刷写 |
| 密钥与数据 | VPN/代理密钥、证书、必要数据库 | 恢复身份和状态 |
这些内容的保密等级不同。普通配置可以放在受控备份仓库,私钥和订阅凭据则应加密保存并限制访问。恢复文档中记录密钥位置即可,不要把所有秘密复制进一份明文说明。
每季度或每次重大修改后,检查备份是否仍能读取、文件名是否包含设备与版本、当前镜像是否仍可获得,以及备用卡/启动盘能否真正启动。备份验证比备份次数更重要。
升级会替换什么
OpenWrt Sysupgrade 文档说明,升级会替换整个 OpenWrt 系统,包括内核与根文件系统;选择保留配置时,会恢复指定配置文件,但后安装的软件包通常需要重新安装。
升级前应当:
- 阅读目标版本的内核、包管理与配置兼容说明。
- 下载目标镜像与当前可回退镜像,并校验文件。
- 导出配置和已安装包清单。
- 确认可以通过本地有线方式管理设备。
- 确认备用路由或备用启动介质真实可用。
家庭主网关优先稳定版,不追逐每日 Snapshot。不要在出差、远程办公、考试或家庭关键活动之前升级。
升级应有明确变更窗口。升级前记录 WAN、LAN、DNS、IPv6、代理/VPN 和端口监听基线;升级后按同一顺序复测。若跨越内核、防火墙或包管理体系的大版本,不要假设旧插件与自定义脚本会继续工作。
如果选择保留配置,仍要准备第三方包重新安装和依赖变化;如果选择干净重装,则按“基础 LAN → WAN → DNS → 代理/VPN → VLAN”的顺序恢复。两种路线都应以当前设备官方升级说明为准。
设计一个几分钟内可启动的备用系统
microSD 设备可以准备一张最小系统备用卡,只包含 WAN、LAN、DHCP、基础 DNS 和管理员密码。它不需要恢复所有代理与 VLAN 功能,目标只是先恢复可靠上网。
eMMC 与 x86 设备应准备:
- 启动 U 盘或官方恢复镜像;
- 串口、显示器或键盘接入方式;
- 对应网卡与存储驱动;
- 已验证的配置备份;
- 一台物理备用路由器。
虚拟化网关还要验证宿主机断电后的启动顺序,确保虚拟交换机与 OpenWrt 虚拟机能够自动恢复。
一次可执行的恢复演练应包括:关闭主系统;使用备用介质启动;恢复 WAN、LAN、DHCP 和基础 DNS;让一台有线终端重新上网;确认可以管理网关;再决定是否恢复代理、VLAN 和远程访问。备用系统的目标是先恢复最小服务,不需要复制生产环境的全部复杂度。
把恢复目标写成时间更容易判断方案是否现实:几分钟内恢复基础上网,随后恢复 Wi-Fi 和关键服务器,最后才恢复非必要增强服务。如果找到备份、网线和管理员密码本身就需要半小时,恢复设计仍然不合格。
监控项目与异常信号
| 项目 | 正常关注点 | 异常信号 |
|---|---|---|
| 系统 | 运行时间、负载、内存 | OOM、频繁重启、进程崩溃 |
| 网络 | 接口速率、丢包、错误计数 | 100M 协商、link down、CRC 错误 |
| 存储 | 可用空间、I/O、挂载状态 | mmc error、I/O error、overlay 满或只读 |
| 温度 | 空闲与高负载温度 | 持续降频、过热关机 |
| 服务 | DNS、代理、VPN、NTP | 解析间歇失败、规则加载失败 |
| 安全 | 登录、端口、更新 | 陌生登录、WAN 暴露、长期未更新 |
监控不需要一开始就部署复杂平台。先确保可以查看系统日志、接口状态、错误计数、温度和存储空间,再根据实际问题增加告警。
建议形成简单节奏:每月检查更新公告、磁盘空间和异常登录;每季度验证备份与备用介质;每次网络故障后补充台账和恢复步骤;硬件、网段或 VLAN 发生重大变化时立即更新拓扑图。监控的价值在于发现趋势和保留证据,不在于仪表盘数量。
运维档案至少包括当前拓扑图、设备型号与管理地址、端口/VLAN 对照、DHCP 静态租约、DNS/代理/VPN 数据路径、防火墙访问矩阵、固件和包版本、备份位置与恢复步骤。档案中可以引用密钥存放位置,但不应直接暴露明文秘密。即使半年后再维护,也应能从这份资料判断每台设备负责什么。
长期验收标准
一个可维护的家庭网关应满足:
- 所有终端获得预期 IP、网关和 DNS;
- 只有一个明确的 DHCP 入口;
- 停用服务器不影响基础上网;
- 停用代理后有可预测的直连或阻断结果;
- WAN 侧无法直接进入管理面;
- IPv4 与 IPv6 使用一致的安全策略;
- 备份、镜像和包清单保存在外部;
- 备用启动介质经过实际启动验证。
家庭开源网关的最终目标不是安装尽可能多的软件,而是让接入、路由、无线、服务和恢复路径都能被解释。当任何一个组件退出时,仍然知道流量会走到哪里,也知道怎样回到上一条已验证路径。
系列术语速查
| 术语 | 含义 |
|---|---|
| ONT/ONU/光猫 | 终结运营商 PON 光纤接入的设备 |
| OLT | 运营商侧的 PON 局端设备 |
| WAN | 面向运营商或上游网络的接口或区域 |
| LAN | 面向家庭内部网络的接口或区域 |
| AP | 把有线 LAN 桥接到 Wi-Fi 的无线接入点 |
| SSID | Wi-Fi 网络名称 |
| DHCP | 自动分配 IP、网关、DNS 和租期等参数 |
| DNS | 把域名解析为地址的系统 |
| PPPoE | 在以太网上建立 PPP 认证会话的接入方式 |
| IPoE | 通过 IP/DHCP 方式接入运营商网络 |
| NAT/NAPT | 转换 IP 地址及端口,让多个私有 IPv4 共享出口 |
| CGNAT | 运营商级 NAT,用户通常没有独立公网 IPv4 |
| 桥接 | 二层透明转发,不承担三层路由 |
| 路由 | 在不同 IP 网络之间选择并转发数据包 |
| 防火墙 | 按规则接受、拒绝或丢弃流量 |
| PBR | 按源、目标、标记等条件选择不同路由 |
| VLAN | 在同一物理网络上划分逻辑二层网络 |
| Trunk | 携带多个 VLAN 标签的链路 |
| Access/PVID | 把无标签终端流量归入指定 VLAN 的端口配置 |
| SQM | 用于降低满载排队延迟的智能队列管理 |
| Bufferbloat | 链路满载时队列过长导致的高延迟 |
| MTU | 单个链路层数据包可承载的最大网络层长度 |
| MSS | TCP 单个报文段的最大数据长度 |
| DDNS | 公网地址变化时自动更新域名记录 |
| VPN | 在公共网络上建立加密或逻辑专用连接 |
| 透明代理 | 终端无需手工设置,由网关接管选定流量 |
| TUN | 常用于 VPN 或代理的虚拟三层接口 |
| TPROXY | 可保留原目标信息的透明代理机制 |
| LuCI | OpenWrt 系列常用的 Web 管理界面 |
| UCI | OpenWrt 的统一配置接口与文件体系 |
| fw4/nftables | 现代 OpenWrt 的防火墙生成器和内核规则框架 |
| sysupgrade | OpenWrt 系列的系统升级机制 |