如何将 freeradius 属性 Framed-IP-Address 包含到日志中

How to include freeradius attribute Framed-IP-Address into logs

我想记录身份验证请求并在日志中包含属性 Framed-IP-Address。 这是我在 radiusd.conf:

中的配置
msg_goodpass = "wifi: %{Virtual-Server}, auth-type: %{control:Auth-Type}, client IP: %{Framed-IP-Address}, device: %{NAS-Identifier} (%{NAS-IP-Address}), authentication result: %{Module-Return-Code}"
msg_badpass = "wifi: %{Virtual-Server}, auth-type:%{control:Auth-Type}, client IP: %{Framed-IP-Address}, device: %{NAS-Identifier} (%{NAS-IP-Address}), authentication result: %{Module-Return-Code}"

除了 Framed-IP-Address 外,所有属性及其值在我的日志服务器上都是可见的。这个配置有问题吗?

有多个属性列表与一个请求关联。通常 Framed-IP-Addressreply 列表中,但在极少数情况下它可以包含在访问请求和记帐请求中。

您可能还试图获取发送 RADIUS 数据包的设备的 IP 地址。

所以这里的问题是您实际尝试访问的内容:

  • 如果您尝试访问要发送给无线客户端的 IP 地址,请使用 %{reply:Framed-IP-address}

  • 如果您尝试从 RADIUS 数据包访问源 IP,请使用 %{Packet-Src-IP-Address}

  • 如果您希望无线客户端的 IP 地址包含在访问请求中,这就是您使用 %{Framed-IP-Address} 的原因,请与 NAS 供应商讨论为什么它没有包含在访问请求数据包中。尽管我通常不希望 Framed-IP-Address 可用,除非这是针对强制门户之类的身份验证,其中 DHCP 在无线客户端身份验证之前运行。

或者您可能误解了 msg_goodpass 和 msg_badpass 配置项的用途。

msg_goodpass 和 msg_badpass 仅在处理访问请求数据包、发送访问接受或访问拒绝时进行评估。 msg_goodpass 和 msg_badpass 在处理 Accounting-Request 数据包时不会被评估,这些数据包在您的情况下似乎包含 Framed-IP-Address 值。

您可以使用 linelog 模块从 Accounting-Requests 生成自定义系统日志消息,使用与 msg_goodpass 和 msg_badpass 相同的扩展语法。

有几个例子here。只需配置一个 linelog 实例,然后在您的虚拟服务器的会计部分调用它,即

accounting {
    linelog
}