У меня нет большого опыта в обслуживании почтового сервера, но, несмотря на это, я должен настроить sendmail как MTA для одного из моих серверов. У меня проблема, когда sendmail отвечает на MUA, который пытается отправить почту во внешний домен, с помощью:
«Ретрансляция запрещена. Требуется надлежащая аутентификация».
Настоящая проблема заключается в том, что аутентификация работает и ретрансляция запрещена для аутентифицированных пользователей. Вот журнал, который показывает успешную аутентификацию, но в ретрансляции отказано.
ПРИМЕЧАНИЕ. Конфиденциальная информация (имя пользователя, IP-адреса ...) была удалена из журналов. «myusername» - это имя пользователя, которое использует MUA, а MYIP - это IP-адрес, с которого MUA подключается к sendmail.
sendmail[31285]: p4GLALtU031285: <-- STARTTLS
sendmail[31285]: p4GLALtU031285: --- 220 2.0.0 Ready to start TLS
sendmail[31285]: STARTTLS=server, get_verify: 0 get_peer: 0x0
sendmail[31285]: STARTTLS=server, relay=MYDOMAIN [MYIP], version=TLSv1/SSLv3, verify=NO, cipher=DHE-RSA-CAMELLIA256-SHA, bits=256/256
sendmail[31285]: STARTTLS=server, cert-subject=, cert-issuer=, verifymsg=ok
sendmail[31285]: AUTH: available mech=PLAIN ANONYMOUS LOGIN, allowed mech=EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
sendmail[31285]: STARTTLS=read, info: fds=7/4, err=2
sendmail[31285]: p4GLALtU031285: <-- EHLO [127.0.0.1]
sendmail[31285]: p4GLALtV031285: --- 250-example.com Hello MYDOMAIN [MYIP], pleased to meet you
sendmail[31285]: p4GLALtV031285: --- 250-ENHANCEDSTATUSCODES
sendmail[31285]: p4GLALtV031285: --- 250-PIPELINING
sendmail[31285]: p4GLALtV031285: --- 250-8BITMIME
sendmail[31285]: p4GLALtV031285: --- 250-SIZE
sendmail[31285]: p4GLALtV031285: --- 250-DSN
sendmail[31285]: p4GLALtV031285: --- 250-ETRN
sendmail[31285]: p4GLALtV031285: --- 250-AUTH LOGIN PLAIN
sendmail[31285]: p4GLALtV031285: --- 250-DELIVERBY
sendmail[31285]: p4GLALtV031285: --- 250 HELP
sendmail[31285]: STARTTLS=read, info: fds=7/4, err=2
sendmail[31285]: p4GLALtV031285: <-- AUTH PLAIN XXXXXXXXXXXXXXXXXXXXX==
sendmail[31285]: p4GLALtV031285: --- 235 2.0.0 OK Authenticated
sendmail[31285]: AUTH=server, relay=MYDOMAIN [MYIP], authid=myusername, mech=PLAIN, bits=0
sendmail[31285]: STARTTLS=read, info: fds=7/4, err=2
sendmail[31285]: p4GLALtV031285: <-- MAIL FROM:<myusername@example.com> SIZE=382
sendmail[31285]: p4GLALtV031285: --- 250 2.1.0 <myusername@example.com>... Sender ok
sendmail[31285]: STARTTLS=read, info: fds=7/4, err=2
sendmail[31285]: p4GLALtV031285: <-- RCPT TO:<test@gmail.com>
sendmail[31285]: p4GLALtV031285: --- 550 5.7.1 <test@gmail.com>... Relaying denied. Proper authentication required.
Почему sendmail отвечает сообщением «235 2.0.0 OK Authenticated», а затем сообщает «Relaying denied. Требуется правильная аутентификация»? Я чувствую, что упускаю здесь что-то важное.
Это соответствующая часть файла sendmail.mc:
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN'i)dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
Вот / etc / mail / access. Он находится в состоянии по умолчанию после установки
# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# If you want to use AuthInfo with "M:PLAIN LOGIN", make sure to have the
# cyrus-sasl-plain package installed.
#
# By default we allow relaying from localhost...
Connect:localhost.localdomain RELAY
Connect:localhost RELAY
Connect:127.0.0.1 RELAY
Спасибо за ваши Коментарии. Проблема решена, решение глупое и неудобное. Благодаря AlexD я сделал:
grep AuthMech sendmail.cf
и получил это:
C{TrustAuthMech}EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAINi
Что там делает буква «я»? Я не эксперт по sendmail, но считаю, что это неправильный способ указывать "PLAIN" auth. Я проверил файл .mc, и буква "i" здесь:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN'i)dnl
Удалил его, перестроил конфиг, перезапустил сервер и все. Все работает как положено.