Mysql

PAM 不會使用 mysql 進行身份驗證(不推薦使用 make_scrambled_pa ssword)

  • April 9, 2014

我花了一些時間搜尋這個,似乎我是唯一一個 PAM 由於目前更新而無法通過 mysql 進行身份驗證的問題,所以我想我會在這裡發布我的問題,如果我找到解決方案,我也會在這裡發布其他人跟隨。

簡而言之 - 我正在使用 saslauthd 和 dovecot 執行 postfix。兩者都通過使用 mysql 作為憑據源的 pam 進行身份驗證。

在今天更新之前一切正常 - 我無法再連接到郵件伺服器,這是我在日誌中看到的內容:

PAM unable to dlopen(/usr/lib/security/pam_mysql.so): /usr/lib/security/pam_mysql.so:     undefined symbol: make_scrambled_password
PAM adding faulty module: /usr/lib/security/pam_mysql.so
DEBUG: auth_pam: pam_authenticate failed: Module is unknown
do_auth         : auth failure: [user=xxxx] [service=smtp] [realm=xxxx] [mech=pam] [reason=PAM auth error]

所以我可能是錯的,但據我了解 pam_mysql.so 正在使用 mysql 不再支持的已棄用的 make_scrambled_pa​​ssword 。

我不知道解決方案是什麼,如果有人可以提供建議,我將不勝感激。


我檢查了項目頁面上的原始碼,可以看到正在使用已棄用的功能。所以這似乎是 pam_mysql 中的一個錯誤,需要更新(

$$ bug reported on pam_mysql sourceforge page $$$$ 1 $$以及 Arch 社區錯誤跟踪器 ( https://bugs.archlinux.org/task/39083?project=5&pagenum=1 ))


我在網際網路上看到了一些解決方法更新檔(https://lists.fedoraproject.org/pipermail/scm-commits/2011-June/613231.html)但是我不確定這是否適合生產環境。看來我得自己修補了。我將在這裡發布更新檔供其他人使用。

非常感謝,格雷格

由於項目已經死了將近 6 年,現在放棄了對 pam_mysql 的支持。解決方案是遷移並使用另一個 pam 後端。

我使用的是 cyrus sasl - 現在已解除安裝並被 dovecot 取代,dovecot 提供了 postfix 辨識的 smtpd 身份驗證後端。我將 dovecot 配置為本地使用 sql(中間沒有 pam)。

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