FreeRADIUS - 对不同的客户端使用不同的管道

FreeRADIUS - 对不同的客户端使用不同的管道

我目前有一个使用 EAP-TTLS 的 FreeRADIUS 设置。

我想这样设置:来自本地主机的请求使用 PAP,但其他请求仍使用 EAP-TTLS。

如何选择每个客户端使用的身份验证方法?

答案1

您可以使用%{client:}扩展来查询请求来源客户端的属性。

authorize {
    if ("%{client:shortname}" == 'localhost') {
        pap
    } else {
        eap
    }
}

如果客户端配置了“localhost”的短名称,则添加上述代码片段将导致调用 pap 模块,否则将调用 eap 模块。

您实际上可以将任意属性放置在客户端部分中,并通过客户端扩展引用它们,即

client my_client {
    ipaddr = 127.0.0.1
    foo = 'bar'
}

"%{client:foo}" # Which would expand to "bar"

相关内容