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

Постфикс: SSL_accept: ошибка в SSLv2 / v3 читать клиент привет A

Пару недель назад я заметил следующие строки в своих журналах после перехода на новый сервер с новейшим программным обеспечением (что, среди прочего, позволило мне наконец отключить устаревшие версии SSL / TLS):

Apr 18 13:31:24 myhostname postfix/smtpd[1641]: connect from relay2.uni-heidelberg.de[129.206.119.212]
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: setting up TLS connection from relay2.uni-heidelberg.de[129.206.119.212]
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: relay2.uni-heidelberg.de[129.206.119.212]: TLS cipher list "AES128+EECDH:AES128+EDH"
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: SSL_accept:before/accept initialization
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: SSL_accept:error in SSLv2/v3 read client hello A
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: SSL_accept error from relay2.uni-heidelberg.de[129.206.119.212]: -1
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: warning: TLS library problem: error:140760FC:SSL routines:SSL23_GET_CLIENT_HELLO:unknown protocol:s23_srvr.c:650:
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: lost connection after STARTTLS from relay2.uni-heidelberg.de[129.206.119.212]
Apr 18 13:31:25 myhostname postfix/smtpd[1641]: disconnect from relay2.uni-heidelberg.de[129.206.119.212]

С тех пор эти строки повторяются. Однако электронные письма с других почтовых серверов (в том числе Gmail) были доставлены, поэтому казалось, что эта проблема была ограничена этим конкретным клиентом. Но сегодня я заметил похожие сообщения журнала при подключении почтовых серверов Amazon и Facebook. (Хотя, что интересно, они сразу же после этого подключаются - иногда с другого хоста - и тогда это работает.)

Могу ли я что-нибудь сделать, чтобы исправить эти проблемы или разрешить доставку писем?

Я использую Postfix 2.11.3.

Выход $ postconf -n:

append_dot_mydomain = no
biff = no
broken_sasl_auth_clients = yes
config_directory = /etc/postfix
default_process_limit = 5
dovecot_destination_recipient_limit = 1
enable_original_recipient = yes
header_checks = regexp:/etc/postfix/header_checks
home_mailbox = Maildir/
inet_interfaces = all
mailbox_command = /usr/lib/dovecot/deliver -m "${EXTENSION}"
mailbox_size_limit = 0
message_size_limit = 52428800
mydestination = *****, localhost
myhostname = *****
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
queue_minfree = 0
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_loglevel = 2
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name
smtpd_client_restrictions = reject_unknown_client_hostname
smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service inet:localhost:10023
smtpd_sasl_auth_enable = yes
smtpd_sasl_authenticated_header = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sender_restrictions = reject_unknown_sender_domain
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = ******
smtpd_tls_ciphers = medium
smtpd_tls_eecdh_grade = strong
smtpd_tls_key_file = ******
smtpd_tls_loglevel = 2
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_received_header = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_medium_cipherlist = AES128+EECDH:AES128+EDH
tls_preempt_cipherlist = yes
tls_random_source = dev:/dev/urandom
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf, mysql:/etc/postfix/mysql_virtual_alias_domainaliases_maps.cf
virtual_gid_maps = static:994
virtual_mailbox_base = /var/vmail
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_limit = 1073741824
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf, mysql:/etc/postfix/mysql_virtual_mailbox_domainaliases_maps.cf
virtual_transport = dovecot
virtual_uid_maps = static:994
smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
...
tls_medium_cipherlist = AES128+EECDH:AES128+EDH

У вас слишком строгие настройки, ограничив протокол только TLS 1.2. Большая часть почтовых серверов использует UNIX с OpenSSL в качестве библиотеки TLS. Поддержка TLS 1.2 была добавлена ​​только в версии 1.0.1, выпущенной около 4 лет назад. Это означает, что существует множество серверов, которые используют старую версию OpenSSL и поэтому не могут не подключиться к вашему серверу с помощью TLS. В зависимости от настройки и программного обеспечения однорангового сервера это означает, что доставка почты в вашу систему будет либо необратимой, либо она будет повторять попытку без TLS.

Таким образом, в случае передачи почты вы должны быть менее строгими и принимать по крайней мере TLS 1.0 и, возможно, даже SSL 3.0, потому что плохое шифрование в большинстве случаев лучше, чем отсутствие шифрования или даже отсутствие доставки. То же самое верно и для набора шифров: несмотря на то, что предпочтение отдается более сильным шифровам, вы также должны включить в свой набор шифров несколько шифров, отличных от DH, и некоторых достаточно сильных шифров, таких как DES-CBC3-SHA.

Вы настроили Postfix на использование сильного шифрования с рекомендованными параметрами безопасности TLS, такими как https://cipherli.st/

Принимая только два надежных шифра с настройками безопасности smtpd_tls_mandatory_ciphers = medium и tls_medium_cipherlist = AES128+EECDH:AES128+EDH и разрешив только TLS 1.2, вы пожертвуете безопасностью перед совместимостью.

relay2.uni-heidelberg.de хочет согласовать и переключиться на зашифрованное соединение, но не может согласовать подходящий шифр. И хотя установка smtpd_tls_security_level = may позволяет вашему серверу откатиться к незашифрованному открытому текстовому соединению, очевидно, relay2 не желает откатиться.

Либо вам необходимо поддерживать некоторые более слабые шифры, либо relay2 необходимо обновить для поддержки современных сильных шифров.

Иногда это могло быть из-за вашего почтового клиента. Например, в Outlook вам нужно явно установить шифрование с Авто на SSL в настройках исходящего SMTP-сервера, чтобы он заработал. Надеюсь, поможет