Какой я всё-таки феерический дурак! Всю ночь напролёт не мог понять, какого хрена не работает у меня в сендмейле аутентификация. Говорит клиенту “Authentication required”. А клиент даже, блин, пароля у меня не спрашивает.
Оказалось, блин, к утру, что я опции, которые требуют аутентификацию, в sendmail.mc раскомментарил — вот эти:
define(‘confAUTH_OPTIONS’, ‘A p’)dnl
А вот те опции, которые поддержку аутентификации включают — не раскомментарил, забыл почему-то. Вот эти то есть:
TRUST_AUTH_MECH(‘EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
define(‘confAUTH_MECHANISMS’, ‘EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
То есть сендмейл, как его просили, требовал произвести аутентификацию. Но сам её в фичах не предоставлял, поэтому почтовый клиент и не пытался (впрочем, если бы и пытался, всё равно бы не получилось ничего).
Это, впрочем, ещё не всё. В процессе копания, ещё раньше, я выяснил, что pam теперь в линуксе откомпилирован так, что требует ядра с CONFIG_AUDIT=y
, а у меня без него. Поэтому в saslauthd MECH=pam
не работает, c вот такой руганью в логах (/var/log/messages):
saslauthd[28475]: do_auth : auth failure: [user=kir] [service=imap] [realm=] [mech=pam] [reason=PAM auth error]
Поэтому надо пойти в /etc/sysconfig/saslauthd
и поменять MECH=pam
на MECH=shadow
. Проверить, что работает, можно с помощью testsaslauthd.
Вот такая содрогающая своей чудовищностью история.