smtpd_tls_auth_only 排除 127.0.0.1

smtpd_tls_auth_only 排除 127.0.0.1

我配置了 postfix 以强制使用 TLS。当外部客户端尝试使用此服务器发送电子邮件时,没有任何问题。但使用 webmail (127.0.0.1) postfix 需要 TLS:

delivery temporarily suspended: TLS is required, but was not offered by host 127.0.0.1[127.0.0.1])

我需要对 master.cf 做哪些更改?

smtp_use_tls = yes
smtp_tls_security_level = encrypt
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/ssl/xxx.key
smtpd_tls_cert_file = /etc/postfix/ssl/xxx.crt
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

答案1

你可以:

  1. smtp_tls_security_level = may
    这将允许您的服务器将邮件传递到不提供 TLS 的主机或具有不良证书的主机(否则它会重试未加密的邮件)。
  2. smtpd_tls_security_level = may 这将导致您的服务器向任何监听端口上的客户端提供 TLS 加密。
  3. smtpd_tls_security_level = encrypt 这将导致您的服务器要求任何监听端口上的所有客户端进行 TLS 加密。

对于互联网主机来说,同时执行 1 和 2 是很常见的,但是您比我更了解您的要求。

答案2

我怀疑您是否可以在不运行第二个 postfix 实例并将 smtpd_tls_auth_only 设置为 no,然后更改 webmail 软件以将邮件发送到该实例的情况下做到这一点。

如果可能的话,您可以考虑重新配置网络邮件以使用 TLS 或直接在本地传递邮件而不是使用 TCP 连接。

答案3

stunnel 将修复此问题。它会创建与 postfix 的 SSL(TLS) 连接:

http://www.stunnel.org/examples/

相关内容