Rejeitando conexões não SSL / TLS com postfix

1

Estou ciente da configuração definir smtpd_tls_security_level onde criptografar exige que as conexões smtpd de entrada sejam feitas por SSL / TLS, e may seja apenas uma preferência por conexões seguras.

O que eu gostaria de saber é:

  • no caso de criptografia estrita (isto é, smtpd_tls_security_level = encrypt ), e o servidor que faz a conexão de entrada não suporta SSL / TLS, há uma maneira de enviar por email o remetente do email rejeitado para avisar da razão do fracasso?
  • no caso de smtpd_tls_security_level = may , existe uma maneira de identificar o tipo de conexão de entrada (ou seja, SSL / TLS ou texto sem formatação). Seria especialmente útil se essas informações pudessem ser enviadas para um script de manipulador para envio de e-mails

Notas ... Estou usando:

  • Centos
  • Postfix
  • Plesk (provavelmente não relevante)
  • Canal de email
por hunter 07.10.2014 / 19:02

2 respostas

5

Sim, o seu Postfix rejeitará a conexão de entrada e gerará um erro de SMTP, que deverá resultar na devolução da mensagem de erro ao remetente original. Normalmente, os erros de SMTP são texto sem formatação limitando o quanto um remetente não técnico irá compreender / aprender com eles.
NB Em o manual essa opção é desencorajada:

You can ENFORCE the use of TLS, so that the Postfix SMTP server announces STARTTLS and accepts no mail without TLS encryption, by setting smtpd_tls_security_level = encrypt. According to RFC 2487 this MUST NOT be applied in case of a publicly-referenced Postfix SMTP server. This option is off by default and should only seldom be used.

Evidências pontuais parecem indicar que ele ajuda contra spam, mas eu não vi números sobre quantos domínios comuns ainda não suportam TLS e, portanto, quanto email real será rejeitado.

Não tenho uma implantação do Postfix à mão, mas espero que seus cabeçalhos SMTP já forneçam informações sobre se a conexão de entrada foi ou não SSL / TLS, como o sendmail, por exemplo,

Received: from mail.example.org (mail.example.org[192.168.0.1])
    by example.com (8.14.4/8.14.4) with ESMTP id s96Md0B2019727
    (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL)
    for <[email protected]>; Tue, 7 Oct 2014 00:39:06 +0200

Editar: Obter as informações gravadas no Postfix requer a definição de smtpd_tls_received_header = yes no arquivo de configuração main.cf e resultará em um cabeçalho similar:

Received: from host.example.com (host.example.com [192.168.0.2])
    (using TLSv1 with cipher cipher-name
    (actual-key-size/raw-key-size bits))
    (No client certificate requested)

Somente as informações de cabeçalho por sua própria infra-estrutura de e-mail (o ponto final) devem ser consideradas confiáveis, outros cabeçalhos podem ser modificados em trânsito.

    
por 07.10.2014 / 19:44
2

Se você tiver smtpd_tls_security_level = encrypt e o servidor que envia o e-mail não puder negociar a sessão TLS, será responsabilidade do servidor de envio notificar o remetente com um e-mail de relatório sem entrega. Um servidor que não faria isso é terrivelmente quebrado. Não é possível fazê-lo no servidor do destinatário, pois a falha SSL / TLS acontece antes mesmo de você conhecer o remetente ou destinatário do email.

    
por 07.10.2014 / 19:39

Tags