几个星期前,我在使用最新软件转移到新服务器(其中包括允许我最终禁用不推荐的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等)的电子邮件已经通过了,所以这个问题似乎只限于这个特定的客户端。 但今天我注意到亚马逊和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库。 仅在4年前发布的版本1.0.1中添加了对TLS 1.2的支持。 这意味着有很多服务器使用旧版本的OpenSSL,因此无法使用TLS连接到您的服务器。 根据对等服务器设置和软件的不同,这意味着邮件传递到您的系统将永久失败,或者它将在没有TLS的情况下重试。
因此,在邮件传输的情况下,你应该减less限制,至less接受TLS 1.0,甚至可以接受SSL 3.0,因为在大多数情况下,坏的encryption更好,不encryption,甚至不交付。 对于密码设置也是如此:虽然较强密码的优先select是好的,但也应该包括一些非DH密码,以及一些足够强大的密码,如DES-CBC3-SHAencryption设置。
你已经configurationPostfix使用强大的encryption与推荐的TLS安全设置,如https://cipherli.st/
通过只接受两个安全设置为smtpd_tls_mandatory_ciphers = medium和tls_medium_cipherlist = AES128+EECDH:AES128+EDH强密码,并且只允许TLS 1.2,您已经将兼容性的安全性交易。
relay2.uni-heidelberg.de愿意协商并切换到encryption连接,但不能协商合适的密码。 虽然设置smtpd_tls_security_level = may允许你的服务器回退到未encryption的明文连接,但显然relay2并不愿意回退。
要么你需要支持一些较弱的密码,要么relay2需要升级以支持现代强大的密码。