Postfix: SSL_accept: erro em SSLv2 / v3 ler cliente hello A

3

Algumas semanas atrás, observei as seguintes linhas em meus logs depois de migrar para um novo servidor com software atualizado (o que, entre outros, permitiu que eu finalmente desativasse as versões obsoletas do 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]

Essas linhas se repetem desde então. No entanto, os e-mails de outros servidores de e-mail (Gmail, entre outros) passaram, então parecia que esse problema estava restrito a esse cliente em particular. Mas hoje eu notei mensagens de log semelhantes quando os servidores de e-mail da Amazon e do Facebook se conectaram. (Embora, curiosamente, eles se reconectam imediatamente depois - às vezes de um host diferente - e então funciona.)

Há algo que eu possa fazer para corrigir esses problemas ou permitir que os e-mails sejam entregues?

Estou executando o Postfix 2.11.3.

Saída de $ 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
    
por balu 21.04.2016 / 06:25

3 respostas

3

smtpd_tls_mandatory_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
smtpd_tls_protocols = !SSLv2,!SSLv3,!TLSv1,!TLSv1.1
...
tls_medium_cipherlist = AES128+EECDH:AES128+EDH

Você tem configurações excessivamente restritivas restringindo o protocolo somente ao TLS 1.2. Uma parte importante dos servidores de e-mail usa algum tipo de UNIX com o OpenSSL como a biblioteca TLS. O suporte para o TLS 1.2 foi adicionado somente com a versão 1.0.1, que foi lançada há cerca de 4 anos. Isso significa que há muitos servidores que usam uma versão mais antiga do OpenSSL e que, portanto, não podem falhar ao se conectar ao seu servidor com o TLS. Dependendo da configuração do servidor de mesmo nível e do software, isso significa que a entrega de mensagens para o sistema falhará permanentemente ou que tentará novamente sem TLS.

Assim, no caso de transferência de e-mail, você deve ser menos restritivo e aceitar pelo menos TLS 1.0 e talvez até mesmo SSL 3.0, porque na maioria dos casos a criptografia ruim é melhor do que nenhuma criptografia ou até mesmo nenhuma entrega. O mesmo vale para o conjunto de cifras: enquanto a preferência de cifras mais strongs é boa, você também deve incluir algumas cifras não-DH e algumas cifras strongs o suficiente como DES-CBC3-SHA para o conjunto de cifras.

    
por 21.04.2016 / 07:15
1

Você configurou o Postfix para usar criptografia strong com as configurações de segurança TLS recomendadas, como encontradas no link

Aceitando apenas duas cifras strongs com as configurações de segurança smtpd_tls_mandatory_ciphers = medium e tls_medium_cipherlist = AES128+EECDH:AES128+EDH e somente permitindo o TLS 1.2, você trocou a segurança pela compatibilidade.

relay2.uni-heidelberg.de está disposto a negociar e mudar para uma conexão criptografada, mas não pode negociar uma cifra adequada. E, embora a configuração smtpd_tls_security_level = may permita que seu servidor receba uma conexão de texto não criptografado, aparentemente relay2 não está disposto a fallback.

Você também precisa suportar algumas cifras mais fracas, ou o relay2 precisa ser atualizado para suportar cifras strongs e modernas.

    
por 21.04.2016 / 07:14
0

Às vezes, pode ser por causa do seu aplicativo de cliente de e-mail. Por exemplo, no Outlook você precisa definir sua criptografia de Auto para SSL explicitamente nas configurações do servidor smtp de saída para fazê-lo funcionar. Espero que ajude

    
por 01.12.2018 / 09:11

Tags