freeradius 伺服器添加額外檢查
我成功地部署了一個 freeradius 伺服器並創建了一個 python 腳本,它對使用者(傳入請求)進行了額外的檢查。我檢查了網際網路(freeradius 的資源非常糟糕),只找到了一個執行緒,它解釋了一些關於向程序添加 python 腳本的基礎知識。
現在我把它放在 /etc/freeradius/sites-enabled/default
authorize
部分下:update control { Auth-Type := `/usr/bin/python /etc/test.py '%{User-Name}' '%{User-Password}'` }
我的
test.py
文件吐出Reject
或Accept
. 我也有sql
使用 freeradius 的身份驗證設置,問題是,如果我的腳本返回Accept
任何其他授權請求,則會被忽略;Accept
即使sql
檢查拒絕使用者,響應仍然是。據我了解,我應該通過 a
noop
而不是Accept
允許 freeradius 繼續,並且僅Reject
在我需要拒絕使用者但如果我回應noop
伺服器抱怨時才通過。有任何想法嗎?也許我需要將我的程式碼添加到該
Authentication.
部分?如何?
…如果我的腳本返回接受任何其他授權請求,則被忽略
是的。這是設計使然。您是在告訴 FreeRADIUS 接受該使用者。它不會打擾您授權部分中的任何其他內容。我相信您是正確的,因為您希望腳本返回 a
noop
而不是 aAccept
如果您希望其他授權方法與它一起使用。如果您還沒有閱讀 rlm_python 手冊頁,那麼您應該查看unlang手冊頁。還要閱讀配置文件中的所有註釋。
您尚未在概念級別上指定您要讓 FreeRADIUS 做什麼,所以我不確定如何進一步建議您。然而,我在 FreeRADIUS-Users 郵件列表中取得了優異的成績。開發人員和許多對 FreeRADIUS 及其功能有深入了解的人經常光顧它。我會在發布之前閱讀他們的常見問題解答(通常不會被禁止的使用者),在廣泛的概念級別和實施級別(就像您在此處所做的那樣)描述您想要做什麼,並確保您送出整個調試輸出。
我建議你去郵件列表的原因是我懷疑有更好的方法來實現你的目標,但我對 rlm_python 不夠熟悉,無法提出前進的方向。無論如何,使用 unlang 規則呼叫 python 腳本似乎並不正確……