零信任远程访问为什么不是“先连上再说”
不少团队把远程访问内网做成了“发个VPN账号、给个内网网段权限”的模式。账号登录成功,整张内网就在眼前——这恰恰与零信任的核心假设相悖。零信任不认为“进入网络等于可信”,设备是否受控、每一次访问是否被显式授权,才是决定放行与否的依据。
传统 VPN 的问题不在加密,而在授权粒度。一旦接入,用户往往可以探测同网段的其他服务:测试库、运维端口、内部管理后台。攻击者拿到一个弱口令账号,横向移动的成本极低。更现实的问题是,很多设备的接入动作完全不在 IT 视线内:私人笔记本、外包人员的机器、已经离职但证书未吊销的设备,都可能成为入口。
零信任远程访问要落地的不是“更复杂的登录”,而是把访问拆成两道独立判断:设备是否可信,以及这个设备、这个身份是否被允许访问这个特定资源。两道判断缺一处,所谓零信任就退化成“账号密码 + 全内网可达”。
设备管控:如何确认“是那台机器”而非“那个账号”
账号可以借用、泄露、共享,设备的可控性更容易形成稳定证据链。设备管控的核心是绑定与吊销:一个 Client 只对应一台具体设备,授权对象是设备而非单纯用户名。这样即使密码外泄,攻击者从陌生设备发起连接时也会被拒绝。
落地时通常要解决几个问题:
- 首次接入需要审批:新设备装好客户端后,不能自动获得任何资源。管理员在后台看到设备指纹与申请信息,判断归属后手动授权,或配置有限的自动放行规则。
- 设备状态要有持续性判断:操作系统版本、是否开启了磁盘加密、是否安装了必要的安全代理,都可以作为准入条件。状态不合格的设备可以连接“自我修复”引导页,而不是直接进入业务资源。
- 吊销必须一步到位:员工离职或设备丢失后,在后台禁用该设备,所有已建立的隧道都应随之失效,而不是等到账号被停用才生效。很多泄露事件发生在账号禁用与设备实际断连之间的窗口期。
设备管控的难点不在技术,在于流程纪律。没有审批第一台设备的动作,后面的授权体系就是空中楼阁。NexTunnel 在这方面的做法是把 Client 装在外网终端后,需要管理员在后台对设备进行授权,设备未获授权前看不到任何可用资源。这个“先授权、后可见”的模型,比“登录后自行发现资源”更接近零信任的默认拒绝原则。
权限管控:从“能不能进内网”到“能碰哪个端口”
只解决设备可信还不够。一个开发者的受控设备如果被木马驻留,攻击者仍然可以借这台机器操作内网。权限管控的第二道门,是把资源暴露面压缩到最小:不是把整个子网放给设备,而是指定 IP + 端口。MySQL 只开 3306,GitLab 只开 80/443,Redis 默认不开、临时调试再授权。
这个转变影响深远。内网服务原本依赖“进入内网即默认可达”的隐含信任,切换到端口级授权后,管理员需要为每个资源单独定义访问关系。工作量初期会上升,但换来的是审计和风控的确定性:每条访问记录都能对应到“谁、哪台设备、访问哪个资源的哪个端口、什么时间、持续多久”。
权限模型设计上,几条务实建议:
- 按角色建资源组,而不是给每个人都配一遍。研发组可以访问 Git、SVN、CI;DBA 可见数据库端口;外包资源单独成组,默认对内部核心系统不可见。
- 端口粒度到服务,不到主机。宁可在同一台服务器上拆两个资源条目,也不要放一个“该主机全部端口”的捷径。
- 默认拒绝 + 临时授权。Redis 这类高风险组件,平时不对任何设备开放。调试时授权 1 小时或到当日,到期自动回收。
NexTunnel 后台管理的资源与端口白名单,对应的是上述第二点。新建资源时绑定 Server 所在内网侧的具体目标地址和端口,Client 端只能看到被分配过的服务,连接行为与资源列表强制匹配。无需关心网段级别的暴露。
落地步骤:把设备与端口两道门同时触发
要把“双重管控”变成可操作流程,建议按下述顺序推进,避免一开始就陷入策略细节。
- 盘点资源与访问关系:列出需要远程访问的内网服务,标注监听端口与访问人群。哪些人只能在办公网访问、哪些需要远程,逐一确认。
- 部署 Server 到内网侧:NexTunnel Server 安装在企业内网,只做入站出方向的隧道桥接,不需要为每台业务机器开放公网入站。
- 建立资源清单:在管理后台逐个添加内网服务条目,记录目标地址和端口。不要用“整段放行”的懒办法,端口必须显式填写。
- 给设备授权而非只给人授权:每个使用者在自己的终端安装 Client,后台绑定设备。管理员授权设备可以访问预设的一组资源,设备未授权时无任何入口。
- 访问审计与动态调整:所有访问行为记录在后端。日常定期抽查非工作时间、非常用设备的访问;发现可疑行为,权限收回先于密码变更。
这个流程本身不要求组织具备专家级安全团队。需要的是对每一条访问关系“先说清楚、再放行”,比过去“先全开、再慢慢收”的路径可逆性更好。
设备与权限的判断会失败在哪些环节
落地过程中最容易出问题的不是产品选型,而是既有习惯和边界感。几个常见的坑:
| 常见问题 | 表现 | 应对方式 |
|---|---|---|
| 设备授权形同虚设 | 默认批准所有首次接入设备,或从不复查已授权设备 | 首次接入必须经过人工审批;每季度清理一次无活动设备 |
| 端口粒度太粗 | 直接把 /24 或整台服务器放行 | 备案到具体端口,必要时拆成多个资源条目 |
| 权限只增不减 | 项目结束、外包离场后资源仍对旧设备开放 | 在设备列表筛选低活跃度设备,与资源绑定关系联动回收 |
| 忽略客户端环境差异性 | 外网客户端跨多网络切换后无法连接 | 选择支持中继转发的方案规避复杂 NAT,不要在带宽上迷信 P2P |
| 审计只看登录不看访问内容 | 只记录“谁连上了”,不知道“做了什么” | 选用可记录资源访问次数与端口访问记录的访问审计体系 |
遇到设备与权限冲突时,优先收紧权限,再解决连通性问题。宁可让某一台设备暂时连不上,也不要让暂未核对清楚的设备暂时拥有全内网可见性。
决策者关注的不是“能不能通”,是“能不能证”
对 IT 决策者来说,评测任何远程访问方案都应问同一组问题:谁能证明某个时段只有某几台设备访问过核心库?谁能证明一个离职员工在半年前就已经看不到任何资源?谁能证明无权限的设备自始至终没有任何成功连接记录?
这类“能证明”不是日志留存本身,而是访问模型的清晰程度。VPN 类方案证明起来非常困难:内网边界在物理网络层面是单一的,能进就能扫,审计与访问前置条件并不足够强一致。内网穿透类工具如果不做授权和资源隔离,其证明力甚至更弱。
NexTunnel 这类从设备授权、端口白名单到访问记录三处同时约束的方案,证明链更短:设备未授权,无资源可见;资源未分配,Client 端看不到触发点;所有可见资源被访问时留下链路记录。对需要回应合规审计、供应商尽调与企业内审的团队,这是远比协议加密更重要的是设计初衷。
下一步怎么动手
先选三个高频且敏感度适中的资源做试点,比如 GitLab、SVN 和某台测试数据库,按本文前两节的思路做设备和端口的双重管控。试用期用最窄的权限模型,重点观察外包团队和出差终端的访问行为变化。尝试 14 天后扩大到研发组常用全部资源,再将运维类高危端口(Redis、SSH 代理)纳入临时授权机制。当前没有公网 IP 且不愿改造网络架构的团队,可以直接评估在现有内网机器上部署 Server、向外提供按设备授权的访问通道,实现从“能连”到“连得对”的迁移。