Назад | Перейти на главную страницу

Довекот говорит: «Запрошена схема CRAM-MD5, но у нас есть только CRYPT», но CRAM-MD5 доступен

После обновления 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), поэтому в настоящее время никто не зависит от этих функций!