Freeradius - 从外部脚本接收数据

时间:2016-11-25 10:42:20

标签: php ubuntu-server freeradius

我正在为我的项目使用 Freeradius v3,我正在执行外部php脚本以在授权部分进行一些检查。我想要实现的是从脚本中获取多个属性 - 值对,如:

Auth-Type(控制):值
回复 - 消息(回复):值
...

因此,例如,我想从脚本中接收和Auth-Type = Accept以及回复消息。

我使用这篇文章:FreeRadius Reading attributes while executing external script作为参考,我尝试按照建议进行,但它无效。

以下是一些代码来解释我在做什么:

1 - 授权部分

int

2 - Php脚本(回声部分)

    authorize{
            update{
                control: += `/usr/bin/php -f /path/to/script/test.php '%{User-Name}'`
            }
    ....

3 - Php输出(如链接帖子所示)

            echo "Auth-Type = Accept,\n";
            echo "reply:WISPr-Redirection-URL = http://google.com,\n";
            echo "reply:Reply-Message = 'hello world'\n";

4 - Freeradius输出

Auth-Type = Accept
reply:WISPr-Redirection-URL = http://google.com
reply:Reply-Message = 'hello world'

如果我删除“回复:回复消息...”并仅放入“回复消息:...”,则输出被freeradius接受但是回复消息avp在“控制”下进行,这不是正确的。

Proxying to virtual server test-server
(0) # Executing section authorize from file /etc/freeradius/sites-enabled/test-server
(0)   authorize {
(0)     update {
(0)       Executing: /usr/bin/php -f /path/to/script/test.php '%{User-Name}':
(0)       EXPAND %{User-Name}
(0)          --> alice
(0)       ERROR: Failed parsing output from: /usr/bin/php -f /home/saiv/radius_script/test.php '%{User-Name}': Expecting operator
(0)       ERROR: Program returned code (0) and output 'Auth-Type = Accept, reply:WISPr-Redirection-URL = http://google.com, reply:Reply-Message = 'hello world''
(0)     } # update = fail
(0)   } # authorize = fail

有人可以告诉我我错过了什么吗? 任何帮助将不胜感激。

0 个答案:

没有答案