Fedora

Dovecot 說:“請求 CRAM-MD5 方案,但我們只有 CRYPT”但 CRAM-MD5 可用

  • April 16, 2015

將 Fedora Core 16 升級到 Fedora Core 21 後,新的 Dovecot 安裝無法正確驗證,原因也不清楚。

我們有 50 多個電子郵件帳戶由該伺服器提供服務,所以我希望讓以前的方案繼續為人們服務。

多年來,我們一直非常成功地使用 CRAM-MD5。我轉移了配置,根據新版本(2.2.15-3)的需要進行了更新,並嘗試連接。日誌說:

Requested CRAM-MD5 scheme, but we have only CRYPT

然而,當我按照 Dovecot 網站上的測試指南(可在此處找到http://wiki2.dovecot.org/TestInstallation)時,測試命令顯示 CRAM-MD5 確實可用:

# telnet localhost 143
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE
IDLE STARTTLS AUTH=CRAM-MD5 AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN]
Dovecot ready.

可以看出,CRAM-MD5 是列出的第一個支持的授權類型。

此外,dovecot 參數測試程序也沒有顯示任何問題:

# dovecot -n
# 2.2.15: /etc/dovecot/dovecot.conf
# OS: Linux 3.17.4-301.fc21.x86_64 x86_64 Fedora release 21 (Twenty One)
auth_debug = yes
auth_debug_passwords = yes
auth_mechanisms = cram-md5 digest-md5 plain login
auth_verbose = yes
listen = *
login_trusted_networks = 192.168.1.4 192.168.1.5 192.168.1.6
192.168.1.12 192.168.1.14 192.168.1.10 127.0.0.1
mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u
mbox_write_locks = fcntl
namespace inbox {
 inbox = yes
 location =
 mailbox Drafts {
   special_use = \Drafts
 }
 mailbox Junk {
   special_use = \Junk
 }
 mailbox Sent {
   special_use = \Sent
 }
 mailbox "Sent Messages" {
   special_use = \Sent
 }
 mailbox Trash {
   special_use = \Trash
 }
 prefix =
}
passdb {
 driver = passwd
}
quota_full_tempfail = yes
service auth {
 unix_listener /var/spool/postfix/private/auth {
   group = postfix
   user = postfix
 }
}
ssl = required
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
 driver = passwd
}
verbose_proctitle = yes

我檢查了 cram-md5 文件的權限是否與舊系統上的權限相同,等等。

非常感謝任何和所有幫助。

…我最終發現文件所有權和權限詳細資訊已更改。而且,我在配置文件中也犯了一個小錯誤。

與許多軟體包一樣,新方案安裝的範例包括許多註釋和註釋掉的行,提示您獲取所需的配置。但是,在我的舊配置文件中沒有這樣的行:

passdb {
 args = /etc/cram-md5.pwd
 driver = passwd-file
}

當然,該文件不必被呼叫cram-md5.pwd,也不必在 /etc 中。但是,您必須在某個地方指向文件!

然而,僅此還不夠。

此外,較舊的安裝具有此文件完全由root. 新安裝希望該文件至少具有 的組所有權dovecot,以及對該文件的讀寫權限。

我剛剛選擇了任何 ole passdb“容器”並將這兩行放入其中,然後它突然開始工作了!

我仍然有一些無法正常工作的東西,但這些是我以前從未使用過的配置選項(如 tls 安全性),所以目前沒有人依賴這些功能!

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