Estou trabalhando em um servidor Postfix que só envia e-mails (newsletters).
Eu li que devo habilitar TLS e/ou SSL no Postfix para aumentar o desempenho de entrega de e-mail. É verdade? Existe uma diferença entre SSL e TLS no Postfix?
Eu já tenho essas três linhas por padrão na minha instalação do Postfix:
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
Então, estou querendo saber se o SSL/TLS já está habilitado por padrão? O que são esses arquivos pem e chave gerados automaticamente? Como posso substituí-los pelo meu certificado HTTPS? Já tenho um certificado HTTPS para o meu domínio. Posso usar os mesmos certificados para Postfix e Nginx?
Habilitar a criptografia não ajuda no desempenho de entrega, mas é recomendável porque aumenta a privacidade do e-mail . A criptografia de e-mail em transporte tornou-se um padrão, como você pode observar no Transparency Report do Google sobre criptografia de e-mail em trânsito .
Embora o SSL e as versões mais antigas do TLS tenham sido preteridos, o email é uma infraestrutura compatível com versões anteriores que considera qualquer criptografia melhor do que nenhuma e está disposta a fazer fallback para conexões não criptografadas. Portanto, ataques man-in-the-middle seriam fáceis, e técnicas como SMTP Security via Opportunistic DANE TLS ( RFC 7672 ) são inventadas para aumentar a segurança, mantendo a compatibilidade com versões anteriores.
Por padrão (a partir de maio de 2020), SSLv2 e SSLv3 foram desabilitados no Postfix para ambos
smtp_tls_protocols
– componente cliente para entrega de correio esmtpd_tls_protocols
– componente de servidor para recebimento de correio.Minha resposta resume as melhores práticas atuais e como elas podem ser implementadas no Postfix.
TLS de entrada
Atualmente, você tem certificados auto-assinados padrão "óleo de cobra" que vêm com o Postfix. Você disse que já tem um certificado para o seu servidor web e certamente pode usar o caminho para essa cadeia e chave de certificados, mas para que essa resposta seja mais útil para o resto, também é possível substituí-los por certificados Let's Encrypt gratuitos. Por isso,
use (ou instale) um servidor web na mesma máquina para o desafio HTTP-01 e
use os certificados criados por ele para e-mails recebidos. Exemplo:
Notar que
sua corrente
smtpd_use_tls
é substituídasmtpd_tls_security_level
em Postfix ≥ 2.3.com Postfix ≥ 3.4, a maneira preferida de configurar as chaves e certificados do servidor é através do
smtpd_tls_chain_files
parâmetro.por RFC 3207, 4 você deve usar TLS oportunista em servidores SMTP referenciados publicamente:
Usar o Let's Encrypt com Certbot significa que seus certificados são renovados automaticamente em ciclos de 2 a 3 meses. O Postfix não carrega esses certificados atualizados automaticamente, então pode ser sábio adicionar um cronjob para recarregar o Postfix com o novo certificado regularmente, por exemplo (uma vez por semana no Debian 10) com
TLS de saída
Se você quiser adicionar autenticação TLS para os servidores de recebimento em seu email de saída, poderá usar o DANE oportunista com
smtp_tls_security_level
. O uso do DANE requer que seu resolvedor de DNS tenha recursos de DNSSEC e só autentique os domínios que tenham políticas TLSA publicadas. Novamente, esta é a melhor prática para aumentar a privacidade sem quebrar a compatibilidade com versões anteriores.Se você não puder usar DANE, poderá especificar manualmente uma lista de domínios que você sabe que têm criptografia e aplicar usando TLS para eles, sozinho, usando
smtp_tls_policy_maps
:Com este Berkeley DB, o conteúdo de
/etc/postfix/tls_policy
pode se parecer com:DANE para TLS de entrada com Let's Encrypt
Para completar, a verificação DANE de saída funciona melhor se você também publicar seus próprios registros TLSA. Com Let's Encrypt, é um pouco problemático automatizar a publicação das impressões digitais de seus certificados atuais. Em vez disso, você pode usar DANE-TA(2) conforme explicado em Por favor, evite “3 0 1” e “3 0 2” registros DANE TLSA com certificados LE :
Além disso, para que isso funcione, você precisa de uma zona assinada DNSSEC para seu domínio.
Não. O TLS fornece criptografia para usuários e durante o transporte, mas não deve afetar a capacidade de entrega, a menos que você esteja enviando para um servidor que aceita apenas TLS. O que melhorará a entregabilidade é configurar corretamente os registros DKIM, DMARC, MTA-STS, etc. Este é um assunto complexo que não conduz a respostas únicas aqui.
Nenhuma diferença para seus propósitos.
Enviando: sim, Recebendo: não - um certificado autoassinado padrão está instalado. Existem muitos guias disponíveis na web e
man postfix
. Também documentação do Postfix TLSA maioria simplesmente aparece. Novamente, a web e o homem são seus amigos.