如何在 freeRADIUS 中根据每个用户使用 Calling-Station-Id?

如何在 freeRADIUS 中根据每个用户使用 Calling-Station-Id?

我试图通过直接在文件中包含相应信息,将每个用户限制为 RADIUS 中的一小组 Mac-ID。users即使每个用户仅限于一台 Mac,这也是可以接受的。服务器正在运行来自 Ubuntu 13.10 存储库的 FreeRADIUS 版本 2.1.12。使用的身份验证是 PEAP 和 MSCHAPv2。

当物理客户端 (Nexus 5) 尝试通过接入点 (Netgear WG-102) 进行连接时,FreeRADIUS 似乎会识别访问请求中的 Mac-id,但不会在检查中使用它。我当前测试设置中的网络上的唯一设备是 radius 服务器、接入点和测试客户端。文件中的条目users设置如下:

testuser   NT-Password := "<hash>", Calling-Station-Id == "a1b2c3d4e5f6"

policy.conf文件有一个函数,可将 Mac ID 标准化为上述格式,并在 之后立即rewrite.calling_station_id调用。正确格式的 mac-id 显示在运行 的日志中。但是,请求被拒绝。即使将检查替换为(只要属性存在,它就会通过),请求也会被拒绝。但是,如果将其替换为 (只有当属性存在时,它才会通过),则请求会被拒绝。available-sites/defaultpreprocessfreeradius -XCalling-Station-Id =* "a1b2c3d4e5f6"Calling-Station-Id !* "a1b2c3d4e5f6"不是存在于请求中,则请求被接受。

相反,如果我使用radclient,则会观察到预期的行为。配置文件和相关日志链接如下。整个/etc/freeradius文件夹链接,还包含以下四种情况的日志。请注意,数字 2 是唯一的意外行为:

  1. nexus-without-mac-success:该users文件没有经过 mac 检查,并且身份验证成功
  2. nexus-with-mac-fail:该users文件具有正确的 MAC 地址,但身份验证失败
  3. radclient-with-mac-expected-behaviour-fail-with-wrong:radclient 使用错误的 mac 地址运行并被拒绝:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0e" | radclient localhost auth testing123
  4. radclient-with-mac-expected-behaviour-success-with-correct:radclient 使用正确的 mac 地址运行并被接受:echo "User-Name=testuser,User-Password=test,Calling-Station-Id=8c:3a:e3:19:70:0f" | radclient localhost auth testing123

难道不能用Calling-Station-Id这种方式吗?相反http://wiki.freeradius.org/guide/Mac-Auth,我想根据每个用户来限制 Mac-Id,因此如果您有其他方法可以做到这一点,我们也将欢迎。

http://portmasters.com/tech/docs/radius/userinfo.html#1004825似乎说这是正确的做法,尽管它是在 1999 年写成的。

http://www.cmi.ac.in/~ronno/freeradius-test包含以下内容:

  • freeradius- 内容/etc/freeradius
  • logs- 上面描述的四种日志
  • wg102.cfg- 接入点配置
  • snapshot.tar.gz- 包含以上所有内容的 tarball

答案1

您尚未将外部请求中的属性传递给内部服务器。

设置copy_tunnel_request = yeseap{peap{}}(eap.conf 或 mods-available/eap 中)。

https://github.com/FreeRADIUS/freeradius-server/blob/master/raddb/mods-available/eap#L594

内部服务器中的文件调用无权访问外部请求中的 Calling-Station-ID 属性,不匹配任何条目,因此未设置 NT-Password 控制属性。

相关内容