Forçando a criptografia para SMTP de saída com o Postfix

16

Alguém sabe como dizer ao Postfix para criptografar emails de saída?

Eu o configurei para usar criptografia na recepção, mas não consigo fazê-lo com o correio de saída. Este é o meu arquivo main.cf :

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = smtpd
transport_maps = hash:/etc/postfix/transport

# tls config
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/ssl/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
    
por Simon 07.03.2010 / 21:55

3 respostas

22

smtp_tls_security_level = encrypt ou smtp_enforce_tls = sim

Para destinos específicos, você pode usar smtp_tls_policy_maps

smtp_use_tls = yes e smtp_enforce_tls = yes estão obsoletos. Com o Postfix 2.3 e posterior, use smtp_tls_security_level .

Lembre-se: A imposição da criptografia TLS pode causar problemas de entrega de mensagens para o host SMTP, que não possui o TLS configurado. Se o servidor for usado para entregar e-mails apenas para seu servidor interno com o TLS configurado, não haverá um problema nesse caso. Mas, se o servidor for usado para entregar e-mails para servidores públicos, você não pode presumir que todos os servidores têm suporte a TLS. Nesse caso, use smtp_tls_security_level = may

    
por 07.03.2010 / 22:45
3

The idea is to force users to configure their email clients with encrypted outgoing smtp server. With the current conf, Thunderbird leave them the option to communicate with the smtp server in plain text...

Você não pode desabilitar a opção no Thunderbird sem recompilar o código-fonte, mas pode configurar o daemon stmpd do postfix (que recebe mensagens de seus clientes) para impor a criptografia. Para fazer isso, use smtpd_tls_security_level = encrypt , que é equivalente a opções obsoletas smtpd_use_tls = yes e smtp_enforce_tls = yes . smtpd_tls_security_level = encrypt e smtp_enforce_tls = yes implica em smtpd_tls_auth_only = yes

Da documentação do postfix sobre smtpd_tls_security_level = encrypt

Mandatory TLS encryption: announce STARTTLS support to SMTP clients, and require that clients use TLS encryption. According to RFC 2487 this MUST NOT be applied in case of a publicly-referenced SMTP server. Instead, this option should be used only on dedicated servers.

Se você usar o servidor público, não poderá impor a criptografia de e-mail na porta 25 / tcp. A melhor solução é desabilitar a entrega de mensagens pelo daemon smtpd daemon postfix 25 / tcp de seus clientes e habilitar o daemon de submissão postfix (que é o daemon smtpd postfix especial usado apenas para receber e-mails de seus clientes locais descritos em RFC 4409 em execução na porta 587 / tcp). Para fazer isso, defina smtpd_tls_security_level = may e remova permit_sasl_authenticated de smtpd_recipient_restrictions . Na linha master.cf uncomment sobre o daemon de envio:

submission inet n       -       n       -       -   submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_recipient_resrictions=permit_sasl_authenticated,reject
    
por 08.03.2010 / 07:44
1

Apenas curioso, como você está dizendo que não está usando o TLS? O valor padrão para smtp_tls_loglevel (que é diferente de smtpd_tls_loglevel) é 0, portanto, por padrão, você não verá nada sobre a negociação TLS para o correio de saída nos logs do Postfix.

Se você definir smtp_tls_loglevel = 1 ou superior, deverá ver uma linha como essa no log quando uma mensagem for enviada:

7 de março 22:28:10 rack postfix / smtp [27400]: inicializando o mecanismo TLS do lado do cliente

Admito que estou sendo preguiçoso, mas além disso (e das anotações de ms acima), a configuração parece bem para mim em um piscar de olhos.

    
por 07.03.2010 / 23:33

Tags