FreeRadius在执行外部脚本时读取属性

时间:2014-10-18 17:41:17

标签: ubuntu-14.04 freeradius

有人可以给我一个提示,如何修改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

更新

preacctaccounting部分怎么样?我看到一旦路由器重新启动,它必须保持呼叫站在" mind"一旦启动就重新验证它。 可以添加

accounting {
    exec
    update control {
        Auth-Type := "%{reply:Auth-Type}"
    }
    ...
}

有?

1 个答案:

答案 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