PAM 可以與 Postfix 和 Dovecot SASL 一起使用嗎?

PAM 可以與 Postfix 和 Dovecot SASL 一起使用嗎?

我已經設定了後綴使用達夫科特SASL聚丙烯醯胺和 Unix 用戶,以及用於本地郵箱儲存的 Dovecot LDA (LMTP)。經過一些測試,收到的郵件被拒絕,原因如下:

錯誤:[使用者] 的 passdb 查找失敗:設定的 passdb 不支援憑證查找

這既麻煩又麻煩 - 我選擇基於 PAM 的身份驗證,因為我發現的所有來源都表明這是最簡單、最可靠的方法。目前我很難解決問題所在 - 我不確定這是否確實是 PAM 的問題,或者我的配置是否有問題。

紀錄

尋找測試doveadm

$ doveadm auth lookup [user]
Error: passdb lookup failed for [user]: Configured passdbs don't support credentials lookups

尋找測試後的Dovecot調試日誌:

$ cat /var/log/dovecot/dovecot-debug.log | tail -5
[date][time] auth: Debug: master in: PASS    1       [user]  service=doveadm debug
[date][time] auth: Debug: pam([user]): Performing passdb lookup
[date][time] auth: Debug: pam([user]): passdb doesn't support credential lookups
[date][time] auth: Debug: pam([user]): Finished passdb lookup
[date][time] auth: Debug: passdb out: FAIL   1       reason=Configured passdbs don't support credentials lookups

相關配置

文件/etc/dovecot/conf.d/10-auth.conf

auth_username_format = %Ln
auth_mechanisms = plain login
!include auth-system.conf.ext

文件/etc/dovecot/conf.d/auth-system.conf.ext

passdb {
    driver = pam 
    args = session=yes failure_show_msg=yes dovecot
}
userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/vmail/%n
}

/etc/pam.d/dovecot檔案是 Rocky Linux(相當於 RHEL,與 Fedora 相同)Dovecot 軟體包附帶的預設檔案:

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      password-auth
account    include      password-auth
session    include      password-auth

不過我也嘗試了官方建議的配置Dovecot PAM 文檔並且它沒有產生任何不同的結果。我對我的其餘配置充滿信心,因為我花了相當多的時間研究這些選項,但我仍然幾乎不了解 PAM 配置...

所有日誌都指向 Dovecot SASL 本身的問題,而不是 Postfix 或 Dovecot 配置的問題。任何建議將不勝感激。

答案1

我不知道這是否是問題的正確解決方案(現在回來閱讀安克斯的評論passdb在我原來的帖子上讓我想知道它是否是),但我設法通過在 Dovecot 的配置中添加第二個條目來使查找和身份驗證工作。

在 Dovecot 配置中,我先於PAM 密碼資料庫條目帶有密碼密碼資料庫入口:

# e.g. /etc/dovecot/conf.d/auth-system.conf.ext
passdb { # This is not a typo
         # Passwd can be used both as a passdb and a userdb
    driver = passwd
}
passdb {
    driver = pam
    args = dovecot
}

這使得用戶查找doveadm auth lookup [user]成功。但是,那密碼資料庫不能認證用戶,因為密碼不再儲存在/etc/passwdUnix 系統上的檔案中。發生這種情況時,將繼續尋找 PAM 密碼資料庫,從而正確驗證使用者身分。可以使用doveadm auth test [user]命令進行測試。


我將此添加為已接受的答案,因為該解決方案/解決方法目前對我有用。如果有人有任何建議或知道如何以更好的方式解決這個問題,我很樂意接受。僅 PAM 資料庫作為預設配置洛基Linux(實際上是 RHEL),這讓我很驚訝它不能開箱即用。

相關內容