2014-10-18 46 views
0

有人可以給我一個提示,說明如何修改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的未知Linux的GNU的,在15時08分48秒

更新

建於2014年8月6日

preacctaccounting節怎麼樣?我看到,一旦路由器重新啓動,它必須使呼叫站保持「精神」,並在啓動後重新驗證它。 有可能加入

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

有嗎?

回答

3

嗯,這不是版本2的有效語法。您需要修改raddb/modules/exec並在授權部分調用它。

2版

對於執行模塊配置你想要的:

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 
+0

工作了這一個,我已經更新了我的帖子 – Carca 2014-10-23 11:24:40

+0

再次檢查我的帖子,preacct和會計怎麼樣? – Carca 2014-10-23 13:45:25

+0

我不明白你想用會計來實現什麼 – 2014-10-23 15:34:32