有人可以给我一个提示,如何修改Freeradius以从外部脚本中读取其他属性。
我有这个
update control {
Auth-Type := `/usr/bin/php -f /web/auth.php '%{NAS-Identifier} %{Calling-Station-Id}'`
}
但是现在的回复可以仅访问或拒绝,但我想设置一些属性更像是对这个用户的带宽限制,如
输出
Accept
WISPr-Bandwidth-Max-Up: xxx
WISPr-Bandwidth-Max-Down: xxx
WISPr-Redirection-URL: http://google.com
我能做到这一点吗?
系统:Ubuntu 14.04
radiusd:FreeRADIUS版本2.2.5,主机x86_64-unknown-linux-gnu,建于2014年8月6日15:08:48
更新
preacct
和accounting
部分怎么样?我看到一旦路由器重新启动,它必须保持呼叫站在" mind"一旦启动就重新验证它。
可以添加
accounting {
exec
update control {
Auth-Type := "%{reply:Auth-Type}"
}
...
}
有?
答案 0 :(得分:3)
嗯,这不是版本2的有效语法。您需要修改raddb/modules/exec
并在授权部分调用它。
版本2
对于您想要的exec模块配置:
wait = yes
program = "/usr/bin/php -f /web/auth.php '%{NAS-Identifier} %{Calling-Station-Id}'"
output_pairs = reply
然后在授权中:
authorize {
exec
update control {
Auth-Type := "%{reply:Auth-Type}"
}
...
}
然后将脚本输出修改为:
Auth-Type = Accept
WISPr-Bandwidth-Max-Up = xxx
WISPr-Bandwidth-Max-Down = xxx
WISPr-Redirection-URL = http://google.com
版本3
版本3支持类似于您发布的属性分配,但它是:
update {
control: += `/usr/bin/php -f /web/auth.php '%{NAS-Identifier} %{Calling-Station-Id}'`
}
然后将脚本输出修改为:
Auth-Type = Accept
reply:WISPr-Bandwidth-Max-Up = xxx
reply:WISPr-Bandwidth-Max-Down = xxx
reply:WISPr-Redirection-URL = http://google.com