keepalived 虚拟 IP 背后的 FreeRADIUS

keepalived 虚拟 IP 背后的 FreeRADIUS

我在 keepalived 的虚拟 IP 后面实现这个 freeradius 时遇到一些困难。我需要 keepalived,因为我需要这个两因素身份验证服务器的冗余。

Radius 处理 Juniper VPN 上的两因素身份验证。因此,一切正常,直到 VPN 尝试与虚拟 IP 上的 Radius 服务器进行通信。 VPN 向 keepalived 设置的虚拟 IP 上的 Radius 服务器发送访问请求。 Radius用服务器的真实IP回复Access-Challenge。 VPN 将在此处断开连接,因此用户将无法进行身份验证。

我应该怎么做才能强制 Radius 使用虚拟 IP 进行响应?我应该改变一些路线吗?

答案1

通常要以这种方式使用 VIP,您会使用 NAT,因此数据包的目标 IP 会被重写为 RADIUS 服务器的内部 IP 地址,并且数据包的源 IP 将被重写为路由器的地址。

如果您无法在 Juniper 上配置此功能,并且您已经找到了一种将数据包转发到源/目标 IP 完整的 RADIUS 服务器的方法,那么您可以强制 FreeRADIUS 在响应时使用特定的源地址。

您首先需要将 VIP 添加为 IP 别名,如下所述:https://support.kemptechnologies.com/hc/en-us/articles/203861685-Configuring-DSR

然后,您需要将以下代码片段添加到虚拟服务器配置中:

server {
    post-auth {
        update control {
            Packet-Src-IP-Address := <VIP address>
        }
    }
}

这将确保从 FreeRADIUS 发出的数据包中的 src 地址与 VIP 匹配。

相关内容