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

невозможно подключиться к postfix с помощью почтового клиента

Я пытался настроить MX на своем сервере и смог заставить часть IMAP работать под SSL с помощью Dovecot, однако я не могу заставить часть SMTP работать с Dovecot в качестве аутентификации SASL.

Когда я telnet example.com 587, то ehlo дает мне следующее:

250-example.com
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

В ehlo нет аутентификации, но если я сделаю ehlo над openssl s_client -starttls smtp -connect example.com:587, Я получаю следующее:

250-example.com
250-PIPELINING
250-SIZE 30720000
250-VRFY
250-ETRN
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

И простой вход с использованием base64 '\ 0username \ 0password' возвращает хорошо. Я думаю, что проблема здесь не в SASL, поскольку пользователи проходят проверку подлинности, а проблема в соединении, но я понятия не имею, что может вызвать такую ​​проблему. Поскольку мои ограничения на получателей не позволяют проходить пользователям без аутентификации SASL, telnet по умолчанию выдает мне ошибку. Как я могу добавить SASL к соединению по умолчанию, отличному от STARTTLS, чтобы я мог использовать его с моим почтовым клиентом?

Вот мой main.cf:

## SASL
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes

## SSL/TLS
smtpd_tls_received_header = yes
smtpd_tls_auth_only = yes
smtpd_tls_cert_file=/etc/postfix/ssl/smtpd.cert
smtpd_tls_key_file=/etc/postfix/ssl/smtpd.key
smtpd_tls_ask_ccert = yes
smtpd_use_tls=yes
smtp_use_tls=yes
smtpd_tls_log_level = 2
smtp_tls_note_starttls_offer = yes
smtpd_tls_session_cache_timeout = 3600s
smtp_tls_protocols = SSLv3, TLSv1
tls_random_source = dev:/dev/urandom

message_size_limit = 30720000
smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, 
    reject_invalid_hostname, permit

smtpd_sender_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_sender, 
    reject_unknown_sender_domain, reject_unauth_pipelining, permit

smtpd_recipient_restrictions = reject_unauth_pipelining, 
    permit_mynetworks, reject_non_fqdn_recipient, 
    reject_unknown_recipient_domain, reject_unauth_destination, permit

smtpd_data_restrictions = reject_unauth_pipelining

smtpd_sender_restrictions = reject_unknown_sender_domain

mydestination = localhost, example.com
mynetworks = 127.0.0.0/8
inet_interfaces = all

virtual_transport = lmtp:unix:private/dovecot-lmtp

virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_domain_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf

Я знаю, что это не совсем ответ на ваш вопрос, но:

Не надо.

Вместо этого используйте свой почтовый клиент с STARTTLS, который, как вы говорите, отлично работает с вашим сервером. Отправлять учетные данные через незашифрованное соединение - не лучшая идея.

Вы не указываете причину, по которой вы вообще хотите выполнять незашифрованную аутентификацию SMTP, поэтому я могу только догадываться - если у вас есть почтовый клиент, который не может выполнять STARTTLS (или, альтернативно, TLS подключается с самого начала, он же SMTPS, для порта 465), вам следует работать над обеспечением безопасности на стороне клиента, а не над ослаблением серверной части.