Вопрос или проблема
Мы настраиваем почтовый реле Postfix для приёма только аутентифицированных smtp-сессий и их переадресации на наши бэкенд смартосты.
CentOS 6.8
postfix-2.6.6-6.el6_7.1.x86_64
cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64
Мы установили и настроили Postfix, а также SASL согласно нескольким учебникам и ссылкам из руководства по postfix на сайте postfix.org, хотя, похоже, у нас есть несколько ошибок в конфигурации или в разрешениях. Будем признательны за любую помощь.
[root@server]# saslpasswd2 -c -u test.com test
Password: test123
Again (for verification): test123
[root@server]# sasldblistusers2
[email protected]: userPassword
[root@server]# testsaslauthd -u [email protected] -p test123
0: NO "authentication failed"
[root@server]# tail -n1 /var/log/messages
Jan 13 08:10:19 server saslauthd[2595]: do_auth : auth failure: [[email protected]] [service=imap] [realm=] [mech=pam] [reason=PAM auth error]
[root@server]# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = testing.com
myhostname = smtp.testing.com
newaliases_path = /usr/bin/newaliases.postfix
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.6.6/README_FILES
relayhost = [mx01.testing.com]:25
sample_directory = /usr/share/doc/postfix-2.6.6/samples
sender_dependent_relayhost_maps = hash:/etc/postfix/relayhost_map
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_fallback_relay = [mx02.testing.com]:25
smtp_tls_CAfile = /etc/postfix/ssl/smtp.testing.com.ca-file
smtp_tls_cert_file = /etc/postfix/ssl/smtp.testing.com.crt
smtp_tls_key_file = /etc/postfix/ssl/smtp.testing.com.key
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP ($mail_version)
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_sasl_security_options = noanonymous
smtpd_sasl_tls_security_options = noanonymous
smtpd_tls_CAfile = /etc/postfix/ssl/smtp.testing.com.ca-file
smtpd_tls_cert_file = /etc/postfix/ssl/smtp.testing.com.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtp.testing.com.key
smtpd_tls_security_level = may
unknown_local_recipient_reject_code = 550
[root@server]# cat /etc/sasl2/smtpd.conf
pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5
log_level: 7
[root@server]# cat /etc/postfix/master.cf
smtp inet n - n - - smtpd -v
#submission inet n - n - - smtpd
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
# -o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
smtps inet n - n - - smtpd -v
# -o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
# -o milter_macro_daemon_name=ORIGINATING
Журнал клиента SMTP
Stat Connected.
Recv 13/01/2017 8:34:12 AM: 220 smtp.test.com ESMTP (2.6.6)<EOL>
Sent 13/01/2017 8:34:12 AM: EHLO SendSMTPv2.19.0.1<EOL>
Recv 13/01/2017 8:34:12 AM: 250-smtp.securmail.net.au<EOL>250-PIPELINING<EOL>250-SIZE 10240000<EOL>250-VRFY<EOL>250-ETRN<EOL>250-STARTTLS<EOL>250-AUTH LOGIN DIGEST-MD5 CRAM-MD5 PLAIN<EOL>250-AUTH=LOGIN DIGEST-MD5 CRAM-MD5 PLAIN<EOL>250-ENHANCEDSTATUSCODES<EOL>250-8BITMIME<EOL>250 DSN<EOL>
Sent 13/01/2017 8:34:12 AM: STARTTLS<EOL>
Recv 13/01/2017 8:34:12 AM: 220 2.0.0 Ready to start TLS<EOL>
Sent 13/01/2017 8:34:12 AM: EHLO SendSMTPv2.19.0.1<EOL>
Recv 13/01/2017 8:34:12 AM: 250-smtp.test.com<EOL>250-PIPELINING<EOL>250-SIZE 10240000<EOL>250-VRFY<EOL>250-ETRN<EOL>250-AUTH LOGIN DIGEST-MD5 CRAM-MD5 PLAIN<EOL>250-AUTH=LOGIN DIGEST-MD5 CRAM-MD5 PLAIN<EOL>250-ENHANCEDSTATUSCODES<EOL>250-8BITMIME<EOL>250 DSN<EOL>
Sent 13/01/2017 8:34:12 AM: MAIL FROM:<[email protected]><EOL>
Recv 13/01/2017 8:34:12 AM: 250 2.1.0 Ok<EOL>
Sent 13/01/2017 8:34:12 AM: RCPT TO:<[email protected]><EOL>
Recv 13/01/2017 8:34:12 AM: 554 5.7.1 <[email protected]>: Relay access denied<EOL>
Sent 13/01/2017 8:34:12 AM: RSET<EOL>
Recv 13/01/2017 8:34:13 AM: 250 2.0.0 Ok<EOL>
[root@Sserver]# tail -n 50 /var/log/maillog
Jan 13 08:34:23 server/smtpd[13157]: NOQUEUE: reject: RCPT from xx.xx.xx.xx.isp.com[xx.xx.xx.xx]: 554 5.7.1 <[email protected]>: Relay access denied; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<SendSMTPv2.19.0.1>
Jan 13 08:34:23 server/smtpd[13157]: generic_checks: name=reject_unauth_destination status=2
Jan 13 08:34:23 server/smtpd[13157]: > xx.xx.xx.xx.isp.com[xx.xx.xx.xx]: 554 5.7.1 <[email protected]>: Relay access denied
Пожалуйста, дайте знать, если будут полезны какие-либо дополнительные журналы или выдержки из конфигурации. Заранее спасибо
У меня была такая же проблема с exim.
Вы можете протестировать cyrus с помощью имени пользователя и пароля на сервере, например:
testsaslauthd -u username -r example.com -p secret
Это не работает с
testsaslauthd -u [email protected] -p secret
Дальнейшее объяснение есть в моем посте здесь: Cyrus sasl error – ”0: NO authentication failed” On Debian 9
Вы установили /etc/postfix/sasl_passwd для реле хоста, обычно это необходимо для ретрансляции почты. Также попробуйте установить mydestination только на localhost и посмотрите, что произойдет.
Надеюсь, это поможет
.
Ответ или решение
Для решения проблемы "postfix & cyrus-SASL SASLDB2 0: NO ‘authentication failed’", связанной с настройкой почтового реле на CentOS 6.8, важно провести диагностику нескольких ключевых параметров и конфигураций. Основная цель — обеспечить успешную аутентификацию пользователей при использовании Postfix и cyrus-SASL.
Проблема и её возможные причины
Из предоставленного описания видно, что аутентификация через saslpasswd2
настроена, но тест с использованием testsaslauthd
выдает ошибку. Это указывает на потенциальные проблемы с конфигурацией или правами доступа.
Возможные причины и решения
-
Проверка конфигурации SASL:
- Убедитесь, что файл
/etc/sasl2/smtpd.conf
нацелен на использование правильного метода проверки пароля. Настройки:pwcheck_method: auxprop auxprop_plugin: sasldb mech_list: PLAIN LOGIN CRAM-MD5 DIGEST-MD5 log_level: 7
- Убедитесь, что используется тот же механизм аутентификации как для Postfix, так и для тестов
testsaslauthd
.
- Убедитесь, что файл
-
Проверка прав и владельцев файлов:
- Предоставьте права доступа к базе данных SASL:
chown postfix:postfix /etc/sasldb2
(замените имя файла на ваш, если используете другую БД). - Убедитесь, что у пользователя, от имени которого работает Postfix, есть корректный доступ к этой базе.
- Предоставьте права доступа к базе данных SASL:
-
Проверка параметров в Postfix:
- Например, в файле
master.cf
для включенияsmtpd_sasl_auth_enable
:smtp inet n - n - - smtpd -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
- Проверьте настройки домена в
sasl_passwd
. Добавьте креды:[mx01.testing.com]:25 ваш_пользователь:ваш_пароль
- Например, в файле
-
Логирование и мониторинг ошибок:
- Проанализируйте файлы
/var/log/maillog
и/var/log/messages
для получения дополнительной информации об ошибках.
- Проанализируйте файлы
-
Тестирование и отладка:
- Попробуйте протестировать аутентификацию без указания полного email как логина
testsaslauthd -u test -r test.com -p test123
. Это может устранить ошибки в формате.
- Попробуйте протестировать аутентификацию без указания полного email как логина
Дополнительные рекомендации
Рекомендуется README Postfix на их официальном сайте и документацию cyrus-SASL для получения подробных указаний по конфигурации вашего сервера и устранению других потенциальных проблем.
Оптимизация настроек требует тщательной проверки каждой части вашей конфигурации, чтобы обеспечить полную совместимость всех компонентов. Удачи в настройке!