forçar o TLS no correio recebido no postfix

2

Desejo ativar a criptografia TLS obrigatória em emails de entrada para alguns (não todos) domínios.

Se eu definir:

smtp_tls_security_level = may
smtp_tls_policy_maps = hash:/etc/postfix/tls_policy

e em tls_policy

example.com encrypt

todas as conexões para o domínio receptor example.com estão acima de TLS.

Como posso impor isso para enviar domínios?

    
por Stefan Mielke 28.05.2018 / 09:14

2 respostas

2

Você precisa observar o recurso de mapas de política do TLS. Ele é projetado para esse cenário específico. Ele permite que você especifique 'may' ou 'must' para separar domínios; assim:

example.net           secure  match=example.net:.example.net
anotherexample.net    may     match=anotherexample.com:.anotherexample.com

Leia mais sobre isso aqui:

link

    
por 28.05.2018 / 11:14
0

Você pode fazer isso com uma combinação de smtpd_tls_received_header e header_checks .

O seguinte é um exemplo rápido não testado e pode não ser totalmente adequado, mas pode servir como um ponto de partida útil. É aconselhável começar com uma ação WARN ou INFO para testes.
Também é possível, dada a natureza multilinha da tentativa de correspondência que nested_header_check é mais adequada do que header_checks .

main.cf

header_checks = pcre:$config_directory/smtpd_tls

smtpd_tls

if /Return-Path:.+<.+@(example\.com)>/
!/Received: from ([^ ]+) \([^\)]+) +
 \(using [^ ] with cipher [^ ]+ [^(]+\)\)
 +[^(]+\)
 +by mx1\.example\.net/x
   REJECT mail from $1 must be sent using TLS
endif

Pretende-se corresponder a todos os e-mails de example.com e rejeitá-los se não contiverem um padrão semelhante a:

Received: from smtp.example.com (smtp.example.com  [192.0.2.1])
    (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
    (No client certificate requested)
    by mx1.example.com
    
por 31.05.2018 / 06:33

Tags