歡迎您光臨本站 註冊首頁

freeradius伺服器中如何定義賬號有效時間?

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

freeradius伺服器中如何定義賬號有效時間?

通過學習上CU上前輩們的貼子(在此向hefish ,wysilly,pk984813等致敬!!!)在Debian 4下建立了一個PPPoE 伺服器通過 Freeradius + Mysql來對用戶賬號進行認證和記費(其實主要是認證),現已正常運行mysql數據啟中也有相關賬號的登入和在線離線時間記錄,現有一點小要求一直無法實現:

1.如何在freeradius中定義賬號的有效時間,比喻說在radius資料庫中的radcheck表中有一賬號'bigman'(默認的attribute有User-Name ,User-Password),現想要求此賬號在20060701過期,請教下有經驗的DX們該如何設置?或如何添該賬號的attribute?

# 在文本認證模式下的PPPoE伺服器中一直是在系統中`usermod -e bigman 20060701`這樣來設置賬號的有效時間,過期后賬號無法登陸。現想在資料庫模式下實現這樣的功能。

# freeradius的默認attribute沒有找到相關的time設置,參照http://www.freeradius.org/rfc/attributes.html


先謝謝各位DX了:em02: :em02:
《解決方案》

你可以在radcheck表添加一些自定義欄位,然後修改mssql.conf內的「authorize_check_query」的sql語句(建議使用存儲過程)。

可以參考我的作法:在radcheck表添加expire欄位,內容為「yyyymmdd」。然後創建一個存儲過程為「p_auth」。
CREATE PROC p_auth
@Username NVARCHAR(64)  ---用戶認證存儲過程
AS    ----具體的認證策略可以根據你自己的需求來定製
SELECT id,UserName,Attribute,Value,op,expire FROM radcheck WHERE Username = @Username AND datediff(day,getdate(),expire)>=0 ORDER BY id

修改mssql.conf中「authorize_check_query」為
authorize_check_query = "exec p_auth '%{SQL-User-Name}'"
《解決方案》

謝謝 linux331兄,看到你的回復很激動,

當時解決不了這個問題,後來放棄了,不過因此認識了Debian這個發行版,並從RH轉到Debian門下,hehe,

謝謝您!!!,提時間我再試試!
《解決方案》

radius有這樣的屬性,但是我沒有具體測試:
Expiration   :=  27 Dec 2007
《解決方案》

《解決方案》

原帖由 bpxyz 於 2007-12-4 22:29 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
radius有這樣的屬性,但是我沒有具體測試:
Expiration   :=  27 Dec 2007

謝謝bpxyz兄,貌似radius的標準屬性里沒有哦,我試試看,謝謝!!
《解決方案》

原帖由 jomper 於 2008-1-16 11:54 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
已經測試了ls的辦法沒有問題,直接加上那個屬性就行了.


謝謝jomper兄,是不是用的bpxyz兄的辦法還是2樓DX的辦法呀?
《解決方案》

《解決方案》

原帖由 jomper 於 2008-1-22 11:16 發表 http://linux.chinaunix.net/bbs/images/common/back.gif
我用的4L的辦法,我是在mysql里配置的直接在radcheck表裡增加屬性就好了,conf也大同小異.

但是response 沒有返回expire屬性,目前只能通過 replay-message來判斷.

哦,謝謝,真是個好消息,但是不明什麼官方的attribute沒有說明。再次謝謝!!
《解決方案》

:em17: :em17: :em17:

[火星人 ] freeradius伺服器中如何定義賬號有效時間?已經有1023次圍觀

http://coctec.com/docs/service/show-post-29155.html