我正在尝试使用 rlm_python 通过我的后端验证客户端。
问题是,我似乎无法对不同的虚拟服务器使用不同的模块,这导致我的身份验证支持威胁所有身份验证请求作为默认虚拟服务器。
所以问题是:有没有办法将变量传递给模块来告知当前虚拟服务器端口地址?
例如这样的事情:
update control {
Auth-Type := `/usr/bin/python /etc/test.py '%{User-Name}' '%{User-Password}' '#{virtual-server}'`
}
答案1
您可以使用 %{Packet-Dst-Port},它将扩展到接收到的 UDP 数据包中的目标端口。
要在 rlm_python 模块中访问它,您需要执行以下操作:
update request {
Packet-Dst-Port := "%{Packet-Dst-Port}"
}
python
首先将其转换为真实属性。