用于稳定 VPN 客户端地址的 RADIUS Framed-IP-Address
稳定的 VPN 地址需要 RADIUS 以及尊重该属性的网关。请检查优先级,并将回复与隧道地址进行比较。
RADIUS 可以为指定用户返回一个地址,但隧道是否真正获得该地址取决于网关。大多数稳定地址方案正是在“已返回”与“已应用”之间的这个缺口上失败。测试回复中的属性只能证明服务器可以发送它,不能证明远程访问服务会应用它。下面的步骤会在地址进入防火墙规则之前检查这两方面。
确定由哪一层拥有该地址
远程访问网关通常有本地地址池,许多网关也能接受认证回复中的地址。哪一种胜出取决于平台、协议和服务配置,因此请阅读所用确切版本的优先级规则。在本地地址池优先的地方,该属性只是装饰,客户端仍然会落在随机地址上。请写下这个决定,包括返回值必须位于地址池范围内还是可以落在范围之外。
RFC 2865 将 Framed-IP-Address 定义为应为用户配置的地址,并且完全没有说明某个网关是否愿意尊重它。关于优先级的权威依据是厂商文档,而不是该属性的定义。
发送测试请求并读取回复
请先单独测试服务器,以免把缺失的属性误认为网关问题。radtest 会发送一个 Access-Request 并打印返回的属性。
radtest alice 'S3cret' 127.0.0.1 0 testing123在 Access-Accept 中查找 Framed-IP-Address,并确认该值是预期值,而不是来自回退规则的地址池地址。当属性缺失时,用户条目或授权策略不匹配,网关调优无法提供服务器从未发送的内容。如果回复难以追溯到具体规则,请在服务器以调试模式运行时重复请求。请将共享密钥排除在 shell 历史和工单之外,因为上面的占位符并不是凭据。
确认网关尊重了该值
正确的回复只是契约的一半。隧道接口上出现的地址才是重要的观察结果,而且应在客户端上读取,而不是从网关配置推断。
ip -4 addr show tun0将该地址与 Access-Accept 中的属性进行比较。不一致意味着网关忽略或改写了该值,这就重新打开了第一节中的优先级问题。请再重新连接一次,因为只在第一次尝试时有效的预留通常指向过期会话或仍被上一个连接持有的租约。请在结果旁边记录网关版本和协议,以便下一位人员判断该行为是否与版本有关。
规划并发与撤销
除非网关通过登录之外的方式区分会话,否则一个用户名在两台设备上无法映射到同一个地址。请决定该映射属于个人、已注册设备还是证书身份,并在策略存储中明确这一选择。请测试第二个并发客户端并比较两个分配的地址,因为这里的冲突随后会以路由故障的形式再次出现。撤销计划也需要同样的谨慎,因为当旧防火墙规则仍引用某个地址而该地址被重新分配时,就会变成授权缺陷。
稳定的地址分配简化了规则和日志,但它从不能证明数据包是谁生成的。当该地址之后转移到另一个会话时,认证和目的地授权仍然重要。