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

sendmail и sasl auth в CentOS 6

Я перемещаю почтовый сервер с одного CentOS 6 на другой. Я использую sendmail с аутентификацией sasl pam. Когда я пытаюсь отправить почту, это не удается, потому что пользователь не аутентифицирован, а почтовый клиент не требует пароля. Все файлы конфигурации одинаковы как на новых, так и на старых серверах. Я проверил это с помощью telnet (новый сервер):

# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 new.mldb.org ESMTP Sendmail 8.14.4/8.14.4; Wed, 4 Feb 2015 14:05:18 +0100
ehlo localhost
250-new.mldb.org Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-STARTTLS
250-DELIVERBY
250 HELP

старый сервер:

Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mldb.org ESMTP Sendmail 8.14.4/8.14.4; Wed, 4 Feb 2015 16:07:23 +0200
ehlo localhost
250-mldb.org Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH LOGIN PLAIN
250-STARTTLS
250-DELIVERBY
250 HELP

эта строка 250-AUTH LOGIN PLAIN отсутствует на новом сервере.

Вот части конфигурации sendmail:

define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
define(`confCACERT', `/etc/pki/tls/certs/ca-bundle.crt')dnl
define(`confSERVER_CERT', `/etc/pki/tls/certs/sendmail.pem')dnl
define(`confSERVER_KEY', `/etc/pki/tls/certs/sendmail.pem')dnl
FEATURE(`access_db', `hash -T<TMPF> -o /etc/mail/access.db')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl

Я тестировал sasl с помощью этой команды

# testsaslauthd -s smtp -u <user> -p <password>
0: OK "Success."

другие файлы, которые я проверил:

# cat /etc/sasl2/Sendmail.conf
pwcheck_method:saslauthd
saslauthd_path:/var/run/saslauthd
mech_list: LOGIN PLAIN

# cat /etc/pam.d/smtp
#%PAM-1.0
auth       include      password-auth
account    include      password-auth

# cat /etc/sysconfig/saslauthd
SOCKETDIR=/var/run/saslauthd
MECH=pam
FLAGS=

когда я пытаюсь отправить письмо, я получаю это в журнале:

# tail /var/log/maillog
Feb  4 15:17:38 new sendmail[12070]: STARTTLS=server, relay=*******.spectrumnet.bg [****], version=TLSv1/SSLv3, verify=NO, cipher=DHE-RSA-AES256-SHA, bits=256/256
Feb  4 15:17:38 new sendmail[12070]: t14EHba9012070: ruleset=check_rcpt, arg1=<****@mail.bg>, relay=*****.spectrumnet.bg [**********], reject=550 5.7.1 <****@mail.bg>... Relaying denied. Proper authentication required.
Feb  4 15:17:40 new sendmail[12070]: t14EHba9012070: from=<*****@*****.eu>, size=422, class=0, nrcpts=0, proto=ESMTP, daemon=MTA, relay=*******.spectrumnet.bg [******]

после того, как я что-то изменил / etc / mail, я запускаю "make"

По какой причине sendmail не предлагает аутентификацию?

ОБНОВИТЬ

Основная причина, по которой sendmail не требовала аутентификации, заключалась в том, что у меня не был установлен этот пакет: cyrus-sasl-plain

Я установил его, и теперь почтовый клиент запрашивает пароль, но пароль всегда не работает.

Еще из конфигураций: # grep TrustAuthMech sendmail.cf C {TrustAuthMech} ВНЕШНИЙ ДАЙДЖЕСТ-MD5 CRAM-MD5 ВХОД ОБЫЧНЫЙ R $ * $ | $ = {TrustAuthMech} $ # RELAY # grep AuthMechanisms sendmail.cf O AuthMechanisms = EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

Что ж, похоже, единственная проблема заключалась в том, что у меня не было установленного пакета cyrus-sasl-plain на новом сервере. После перезапуска всех служб (saslauthd и sendmail), а также отправки и аутентификации почтового клиента, все работало нормально.

Ваш sendmail.mc выглядит нормально. Помимо остановки и повторного запуска sendmail (что, я думаю, вы уже сделали). Я бы посмотрел на фактический файл конфигурации, который будет называться sendmail.cf.

Убедитесь, что вы видите строки:

C{TrustAuthMech}DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

и

# list of authentication mechanisms
O AuthMechanisms=DIGEST-MD5 CRAM-MD5 LOGIN PLAIN

Если LOGIN PLAIN там нет, значит, ваша 'make' не генерирует файл .cf из файла .mc.