Freeradius

更換自由半徑庫

  • April 30, 2013

我有一個想要更新的 freeradius 2.0.4 伺服器。它已經執行了 2 年而沒有中斷。

我的更新僅包括更新chap模組而不創建新模組。

為了避免服務中斷並確保所有配置保持不變,我試圖在測試機器上找到一種平滑的方法來做到這一點。

我認為可以簡單地將 rlm_chap-2.0.4.so 庫替換為我的修改版本。但這會產生段錯誤(很可能是由庫衝突引起的)。

其他資訊:

  • Freeradius 啟動並在第一次請求呼叫 chap 模組時產生段錯誤。

  • 我的庫與來自 freeradius 源的編譯版本一起使用時工作正常

  • 我正在使用 2 個版本的 Freeradius:通過 apt-get install 安裝的 2.0.4 和來自 apt-get 源的編譯版本

  • 庫衝突是由修改後的庫引起的,沒有別的原因。如果我恢復 rlm_chap-2.0.4.so 的原始版本(並且什麼都不做),它會再次正常工作。

  • 我仍然是編譯/庫操作/freeradius 的菜鳥,所以我可能做錯了很多事情。

有任何想法嗎?

謝謝!

我不確定您所說的“圖書館衝突”是什麼意思。

但無論如何,你不應該這樣做。如果您正在修改 rlm_chap,它必須針對與 libfreeradius 和 radiusd 相同的源版本建構。

如果您嘗試使用來自 FreeRADIUS 更新版本(例如 2.2.0)的 rlm_chap 打包版本,它可能無法正常工作,因為 FreeRADIUS 的內部 API 可能會發生變化。

對於 FreeRADIUS 3.0.0,這是明確禁止的。如果伺服器載入連結到不同版本庫的模組,伺服器將拒絕啟動。

如果它是使用與它在執行時連結的版本不同的 OpenSSL 版本建構的,它也會拒絕啟動。

如果您準備更新 rlm_chap,則需要下載 2.0.4 的官方版本,替換 src/modules/rlm_chap 中的 rlm_chap 程式碼,嘗試建構模組,修復任何建構錯誤,然後使用該版本代替目前的.so。

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