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

Как я могу настроить sendmail для использования аутентификации CRAM-MD5?

У меня sendmail работает на машине RedHat 7.1. Я хочу настроить его для аутентификации с использованием PLAIN или CRAM-MD5. У меня он работает с PLAIN (поэтому я знаю, что клиент работает, у меня правильное имя пользователя / пароль и т. Д.), Но CRAM-MD5 всегда возвращает «535 5.7.0 аутентификация не удалась». Для тестирования я использую простой скрипт Python, который использует модуль smtplib; Я предполагаю, что их реализация CRAM-MD5 верна.

Он отвечает на EHLO сообщением «AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN» и отправляет запрос, когда я отправляю «AUTH CRAM-MD5», поэтому он принимает запросы CRAM-MD5, но отказывается их аутентифицировать.

Я знаю, что CRAM-MD5 требует, чтобы сервер имел доступ к паролям в виде открытого текста; возможно ли, что это не так? Как я могу определить, а если нет, то как настроить машину для этого?

Я добавил имя пользователя / пароль в / etc / mail / authinfo и запустил map hash /etc/mail/authinfo < /etc/mail/authinfo. В файле / var / log / maillog сообщений об ошибках нет.

Согласно sasl sysadmin doc,

For simplicity sake, the Cyrus SASL library stores plaintext
passwords only in the /etc/sasldb2 database. These passwords
are then shared among all mechanisms which choose to use it.
...
The "saslpasswd" utility is provided to change the secrets in
sasldb. It does not affect PAM, /etc/passwd, or any other
standard system library; it only affects secrets stored
in sasldb.

Однако некоторые поставщики могут изменить расположение вещей во время компиляции, поэтому strings в двоичных файлах sasl или strace может потребоваться выяснить, где именно saslauthd смотрит.

Это может кому-нибудь помочь ...

Когда ты бежишь sendmailconfig там написано ... "К сожалению, не существует автоматического способа перехода на / etc / sasldb2"

В переводе мне: что-то не так.

Поэтому я просто удалил sasldb2 (решил, что все равно что-то пошло не так). Может, в этом не было необходимости, может, мне просто нужно было добавить к нему моих пользователей?

В любом случае я сбежал saslpasswd2 который, как я предполагаю, создает пустую базу данных без пользователей. Аутентификация пользователя не работала, пока я не запустил ...

saslpasswd2 -c username который запрашивает пароль.

И это работает как шарм :-)

Я использую Debian 9 с sasl2-bin, который sendmailconfig рекомендует.