freeRADIUS:更改内部身份验证时出错

freeRADIUS:更改内部身份验证时出错

我正在使用 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您可以在其中看到正在发送的不同属性。

相关内容