抱歉,我是 Radius 新手……
我尝试运行 NixOS 打包的 FreeRadius 服务器版本 3.0.20,以在 dlink 接入点上对用户进行身份验证。我运行服务器时启用了调试日志记录。
我从默认配置开始,并遵循入门testing
指南。所以我使用添加了用户testing Cleartext-Password := "password"
。我可以使用 确认此身份验证有效radtest testing password 127.0.0.1 0 testing123
。我还在日志文件中将其视为成功登录。– 太棒了,到目前为止有效。
接下来,我尝试使用相同的用户和密码通过接入点进行身份验证。因此,我添加了接入点的 IP,clients.conf
并在接入点中配置了 radius 服务器和共享密钥。
client ap2 {
ipaddr = 192.168.1.32
secret = testing123
}
当尝试进行身份验证时,我看到请求来自 tcpdump,但是 FreeRadius 完全忽略了它:没有记录任何内容。
为了交叉检查并验证 radius 服务器不仅在本地主机上监听,我添加了另一个非本地主机客户端并radtest
再次使用该源 IP:一切仍然正常。
再次检查tcpdump
这是工作请求:
192.168.1.144.57243 > 192.168.1.144.1812: [bad udp cksum 0x84d7 -> 0x44fd!] RADIUS, length: 77
Access-Request (1), id: 0x2c, Authenticator: 106b49030bec802e1bd156ff48e3589a
User-Name Attribute (1), length: 9, Value: testing
0x0000: 7465 7374 696e 67
User-Password Attribute (2), length: 18, Value:
0x0000: d112 7b01 9c70 9548 d4a1 db33 c648 739e
NAS-IP-Address Attribute (4), length: 6, Value: 127.0.1.1
0x0000: 7f00 0101
NAS-Port Attribute (5), length: 6, Value: 0
0x0000: 0000 0000
Message-Authenticator Attribute (80), length: 18, Value: &7u...s..L....|..
0x0000: 2637 75c2 ead6 73cc d64c ee9f a97c d8d7
这是来自 FreeRadius 的响应:
192.168.1.144.1812 > 192.168.1.144.57243: [bad udp cksum 0x849e -> 0x427b!] RADIUS, length: 20
Access-Accept (2), id: 0x2c, Authenticator: 750e916c6b56f85eed550088c6cf30fc
相比之下,这是来自 DLink 的请求:
192.168.1.32.36759 > 192.168.1.144.1812: [udp sum ok] RADIUS, length: 103
Access-Request (1), id: 0x6a, Authenticator: e7e4df28fcd96772ffb508c4df564d
User-Name Attribute (1), length: 9, Value: testing
0x0000: 7465 7374 696e 67
User-Password Attribute (2), length: 18, Value:
0x0000: a7cb 807f a0dc fdca 8bd4 e19f cbf4 3e79
Calling-Station-Id Attribute (31), length: 19, Value: 98:f6:21:c0:cc:9d
0x0000: 3938 3a66 363a 3231 3a63 303a 6363 3a39
0x0010: 64
NAS-Identifier Attribute (32), length: 19, Value: c4:e9:0a:21:61:b0
0x0000: 6334 3a65 393a 3061 3a32 313a 3631 3a62
0x0010: 30
NAS-IP-Address Attribute (4), length: 6, Value: 192.168.1.32
0x0000: c0a8 0120
NAS-Port-Type Attribute (61), length: 6, Value: Wireless - IEEE 802.11
0x0000: 0000 0013
NAS-Port Attribute (5), length: 6, Value: 255
0x0000: 0000 00ff
FreeRadius 根本没有记录该请求,也没有对其发送任何响应。
我最想知道的第一件事可能是:为什么 FreeRadius 没有记录来自 DLink 接入点的请求,而记录了其他请求?
知道我遗漏了什么吗?为什么从 FreeRadius 到接入点没有响应 UDP 数据包?
一个“额外”问题:在接入点的 UI 中,身份验证机制称为“SPAP”,但“用户密码属性”看起来像普通的“PAP”身份验证。PAP 和 SPAP 之间有什么区别?SPAP 代表什么?我找不到任何协议文档。
答案1
我感到很尴尬...我看到了请求tcpdump
但在 FreeRadius 日志中没有看到的问题是,我阻止了请求,iptables
所以 UDP 数据包从未到达 FreeRadius 的套接字。
… 一个完美的第 8 层错误 :(