Freeradius

freeradius 伺服器添加額外檢查

  • April 11, 2013

我成功地部署了一個 freeradius 伺服器並創建了一個 python 腳本,它對使用者(傳入請求)進行了額外的檢查。我檢查了網際網路(freeradius 的資源非常糟糕),只找到了一個執行緒,它解釋了一些關於向程序添加 python 腳本的基礎知識。

現在我把它放在 /etc/freeradius/sites-enabled/defaultauthorize部分下:

update control {
      Auth-Type := `/usr/bin/python /etc/test.py '%{User-Name}' '%{User-Password}'`
}

我的test.py文件吐出RejectAccept. 我也有sql使用 freeradius 的身份驗證設置,問題是,如果我的腳本返回Accept任何其他授權請求,則會被忽略;Accept即使sql檢查拒絕使用者,響應仍然是。

據我了解,我應該通過 anoop而不是Accept允許 freeradius 繼續,並且僅Reject在我需要拒絕使用者但如果我回應noop伺服器抱怨時才通過。

有任何想法嗎?也許我需要將我的程式碼添加到該Authentication.部分?如何?

…如果我的腳本返回接受任何其他授權請求,則被忽略

是的。這是設計使然。您是在告訴 FreeRADIUS 接受該使用者。它不會打擾您授權部分中的任何其他內容。我相信您是正確的,因為您希望腳本返回 anoop而不是 aAccept如果您希望其他授權方法與它一起使用。

如果您還沒有閱讀 rlm_python 手冊頁,那麼您應該查看unlang手冊頁。還要閱讀配置文件中的所有註釋。

您尚未在概念級別上指定您要讓 FreeRADIUS 做什麼,所以我不確定如何進一步建議您。然而,我在 FreeRADIUS-Users 郵件列表中取得了優異的成績。開發人員和許多對 FreeRADIUS 及其功能有深入了解的人經常光顧它。我會在發布之前閱讀他們的常見問題解答(通常不會被禁止的使用者),在廣泛的概念級別和實施級別(就像您在此處所做的那樣)描述您想要做什麼,並確保您送出整個調試輸出。

我建議你去郵件列表的原因是我懷疑有更好的方法來實現你的目標,但我對 rlm_python 不夠熟悉,無法提出前進的方向。無論如何,使用 unlang 規則呼叫 python 腳本似乎並不正確……

引用自:https://serverfault.com/questions/498553