Postfix сервер, Cyrus, TLS. Аутентификация не удалась, но testsaslauthd в порядке.

Вопрос или проблема

Добрый день, сообщество,

Я пытаюсь настроить сервер postfix с cyrus и TLS ОС: RHEL 7.7 версия postfix: 2.10.1 версия cyrus: cyrus-sasl-2.1.26-24

Часть аутентификации кажется в порядке, так как testsaslauthd показывает зеленый результат

bash$ testsaslauthd -u xxxx -p yyyy
0: OK "Success."

Часть TLS тоже выглядит нормально (journalctl -u postfix), когда я выполняю openssl s_client -connect localhost:25 -starttls smtp

Dec 30 18:01:49 xxx postfix/smtpd[114933]: Anonymous TLS connection established from localhost[127.0.0.1]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
Dec 30 18:01:49 hp618srv postfix/smtpd[114933]: xsasl_cyrus_server_create: SASL service=smtp, realm=(null)

Но когда я пытаюсь аутентифицироваться, возникает ошибка

EHLO myclient
250-server.domain
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH SCRAM-SHA-1 GSS-SPNEGO GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
AUTH PLAIN AHVic2Z4X3BhYwBwYWNfdWJzZnge=
535 5.7.8 Error: authentication failed: authentication failure

Зашифрованное значение было сгенерировано с помощью

printf '\0%s\0%s' xxxx yyyy| openssl base64

На этом этапе я запутался и ищу помощи, чтобы это исправить. Просматривая конец journalctl, я не вижу ничего, что могло бы мне помочь с моими текущими знаниями

Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: < localhost[127.0.0.1]: EHLO 127.0.0.1
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: match_list_match: localhost: no match
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: match_list_match: 127.0.0.1: no match
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-serverxxx.xxx.xxx.com
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-PIPELINING
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-SIZE 10240000
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-VRFY
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-ETRN
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-AUTH SCRAM-SHA-1 GSS-SPNEGO GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-ENHANCEDSTATUSCODES
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250-8BITMIME
Dec 30 18:22:56 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 250 DSN
Dec 30 18:23:08 serverxxx postfix/smtpd[133362]: < localhost[127.0.0.1]: AUTH PLAIN AHVic2Z4X3BhYwBwYWNfdWJzZng=
Dec 30 18:23:08 serverxxx postfix/smtpd[133362]: xsasl_cyrus_server_first: sasl_method PLAIN, init_response AHVic2Z4X3BhYwBwYWNfdWJzZng=
Dec 30 18:23:08 serverxxx postfix/smtpd[133362]: xsasl_cyrus_server_first: decoded initial response
Dec 30 18:23:08 serverxxx postfix/smtpd[133362]: warning: SASL authentication failure: Password verification failed
Dec 30 18:23:08 serverxxx postfix/smtpd[133362]: warning: localhost[127.0.0.1]: SASL PLAIN authentication failed: authentication failure
Dec 30 18:23:08 serverxxx postfix/smtpd[133362]: > localhost[127.0.0.1]: 535 5.7.8 Error: authentication failed: authentication failure
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: smtp_get: EOF
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: match_hostname: localhost ~? 10.14.24.128/25
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: match_hostaddr: 127.0.0.1 ~? 10.14.24.128/25
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: match_hostname: localhost ~? 127.0.0.0/8
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: match_hostaddr: 127.0.0.1 ~? 127.0.0.0/8
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: lost connection after AUTH from localhost[127.0.0.1]
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: disconnect from localhost[127.0.0.1]
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: master_notify: status 1
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: connection closed
Dec 30 18:23:10 serverxxx postfix/smtpd[133362]: auto_clnt_close: disconnect private/tlsmgr stream
Dec 30 18:23:10 serverxxx autoengine[137066]: user xxx from 10.14.43.53: as xxx: 1264  30/12/24 18:22:48 openssl s_client -connect 127.0.0.1:25 -starttls smtp

Мой файл конфигурации cyrus /etc/sasl2/smtpd.conf содержит

pwcheck_method: saslauthd
mech_list: plain login

Мой файл конфигурации postfix /etc/postfix/main.cf содержит

smtpd_tls_auth_only = yes
smtpd_use_tls = yes
smtp_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_cert_file = /etc/postfix/certs/postfix.crt
smtpd_tls_key_file = /etc/postfix/certs/postfix.key
smtpd_tls_loglevel = 1
smtp_tls_loglevel = 1

smtpd_sasl_type = cyrus
smtpd_sasl_path = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous, noplaintext
smtpd_sasl_tls_security_options = noanonymous
#smtpd_sasl_mechanism_filter = PLAIN, LOGIN
#broken_sasl_auth_clients = yes
cyrus_sasl_config_path = /etc/sasl2/smtpd.conf

Любые советы/рекомендации для разрешения этой проблемы будут высоко оценены. Я не знаю, какие журналы стоит просматривать, чтобы найти ценную информацию и/или какой уровень журналирования следует увеличить, чтобы обнаружить коренную причину

Заранее благодарю всех

Ответ или решение

Уважаемое IT-сообщество,

Столкнувшись с проблемой настройки сервера postfix с использованием cyrus и TLS на платформе RHEL 7.7, с версиями программного обеспечения postfix 2.10.1 и cyrus-sasl-2.1.26-24, вы можете испытывать затруднения с аутентификацией, несмотря на успешное прохождение теста testsaslauthd. Ниже я предлагаю вам последовательность действий, которые помогут устранить и решить эту проблему.

Простая проверка настроек

  1. Правильность учетных данных: Убедитесь, что логин и пароль, закодированные в BASE64, действительно корректны. Ошибка может возникать из-за неверных учетных данных.

  2. Синхронизация конфигураций: Проверьте, что файлы конфигураций /etc/sasl2/smtpd.conf и /etc/postfix/main.cf согласованы. Ваши настройки pwcheck_method и mech_list согласованы, но это не гарантирует отсутствие скрытых ошибок.

Диагностика и проверка логирования

  1. Уровень логирования: Рассмотрите возможность увеличения уровня логирования как для Postfix, так и для SASL, чтобы получить более подробную информацию об ошибках.

    Для Postfix:

    debug_peer_list = 127.0.0.1
    debug_peer_level = 10

    Для Cyrus SASL:
    Включите отладку в /etc/sasl2/smtpd.conf:

    log_level: 7
  2. Журналы безопасности: Проверьте системные журналы безопасности и серверные журналы (например, /var/log/maillog), чтобы найти более специфические сообщения об ошибках.

Продвинутая проверка

  1. SASL MECH-list: Убедитесь, что установленные механизмы аутентификации поддерживаются как Postfix, так и Cyrus SASL. Ваш список состоит из PLAIN и LOGIN, но также включены более сложные схемы (SCRAM-SHA-1, DIGEST-MD5) — возможно, требуется их анализ.

  2. Права доступа:

    • Проверьте, что saslauthd работает с правильными правами и правильно аутентифицирует пользователей.
    • Командой saslauthd -d можно задать демону дополнительный отладочный режим для мониторинга.
  3. TLS настройки в Postfix:

    • Если вы уверены, что TLS настроено корректно, убедитесь, что сертификаты совпадают с теми, которые указаны в smtpd_tls_cert_file и smtpd_tls_key_file.
  4. Взаимодействие с saslauthd: Убедитесь, что saslauthd запускается с теми же параметрами маршрута, что и вышеупомянутый cyrus_sasl_config_path.

Заключение

Ошибки аутентификации, особенно когда функциональность testsaslauthd кажется исправной, часто связаны с неправильной интеграцией между Postfix и SASL. Выполнив предложенные выше шаги, вы сможете выявить настоящую причину проблемы и устранить ее. Если указанные указания не принесут результатов, рассмотрите возможность подключения к сообществам, специализирующимся на Postfix и Cyrus SASL, где эксперты могут предложить дополнительные советы.

С уважением,
[Ваше имя/Компания]

Оцените материал
Добавить комментарий

Капча загружается...