После обновления 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
, а также разрешения на чтение и запись в файл.
Я просто выбрал любого оле passdb
"контейнер" и поместил в него эти две строчки, и вдруг он заработал!
У меня все еще есть некоторые вещи, которые не работают должным образом, но это параметры конфигурации, с которыми я никогда раньше не работал (например, безопасность TLS), поэтому в настоящее время никто не зависит от этих функций!