更換自由半徑庫
我有一個想要更新的 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。