我正在使用 freeRADIUS 的版本 2。我已成功更改默认 eap 类型。
现在我正在尝试更改内部身份验证,因为我需要 pap 作为默认值。
我尝试更改 ttls 的内部身份验证,但随后发生了这种情况:
ttls {
default_eap_type = "pap"
copy_request_to_tunnel = no
use_tunneled_reply = no
virtual_server = "inner-tunnel"
include_length = yes
}
rlm_eap_ttls: Unknown EAP type pap
rlm_eap: Failed to initialize type ttls
/usr/local/etc/raddb/eap.conf[17]: Instantiation failed for module "eap"
/usr/local/etc/raddb/sites-enabled/default[310]: Failed to load module "eap".
/usr/local/etc/raddb/sites-enabled/default[252]: Errors parsing authenticate section.
我也尝试过更改peap的内部身份验证,但问题与以前相同:
peap {
default_eap_type = "pap"
copy_request_to_tunnel = no
use_tunneled_reply = no
proxy_tunneled_request_as_eap = yes
virtual_server = "inner-tunnel"
soh = no
}
rlm_eap_peap: Unknown EAP type pap
rlm_eap: Failed to initialize type peap
/usr/local/etc/raddb/eap.conf[17]: Instantiation failed for module "eap"
/usr/local/etc/raddb/sites-enabled/default[310]: Failed to load module "eap".
/usr/local/etc/raddb/sites-enabled/default[252]: Errors parsing authenticate section.
为什么它不认识爸爸?谢谢。
答案1
问题是 PAP 不是 EAP 类型。 PAP 是一种身份验证类型。
EAP-TTLS 是唯一广泛使用的可以使用 PAP 内部的 EAP 类型,因此我假设您正在使用它。
当服务器处理 EAP-TTLS 时,它会提取 EAP-TTLS 的 TLS 隧道内的属性,并从中创建 RADIUS 属性。然后,它“代理”包含这些属性的请求(可能与携带 EAP 的 RADIUS 数据包中的属性合并),并将它们发送到另一个虚拟服务器(默认为“内部隧道”)。
为了在内部隧道中执行 PAP 身份验证,您需要像 RADIUS 一样设置 PAP。
等/raddb/可用站点/内部隧道
server inner-tunnel {
authorize {
ldap | sql | files | whichever module you use to retrieve passwords
pap
}
authenticate {
pap
}
}
注意:您还需要选择 PAP 作为请求者的内部方法。无法协商请求者是使用内部 EAP 方法,还是使用隧道属性的 PAP/CHAP/MSCHAPv2。请求者发送属性,服务器接受它发送的任何内容。如果请求者发送EAP消息属性并且配置了EAP模块,则服务器将执行EAP。如果请求者发送用户密码属性并且配置了 PAP 模块,服务器将执行 PAP。
这与 EAP 不同,EAP 中请求者和服务器可以协商 EAP 方法。有很多示例交换RFC5281您可以在其中看到正在发送的不同属性。