Postfix 强制 smtp/smtpd 与“非强制”的区别和配置

Postfix 强制 smtp/smtpd 与“非强制”的区别和配置

三个问题:

  1. 如果我错了,请纠正我:
    smtpd_tls_mandatory_ciphers=> 传入强制 TLS 加密设置
    smtpd_tls_ciphers=> 传入机会性 TLS 加密设置
    smtp_tls_mandatory_ciphers=> 传出强制 TLS 加密设置
    smtp_tls_ciphers=> 传出机会性 TLS 加密设置
  2. 如果我同时设置了两者,smtpd_tls_security_level那么smtp_tls_security_level只有may机会设置是相关的,这意味着我在强制设置中设置什么并不重要?
  3. 如果我想创建一个安全但仍然公开的邮件服务器,以下配置(关于使用的加密)可以吗?我不太确定目前有多少服务器支持 TLS 或一般支持哪些安全级别,但我仍然希望能够与其中大多数服务器进行通信。

    smtpd_tls_mandatory_ciphers = high
    smtp_tls_mandatory_ciphers = high
    smtpd_tls_ciphers = high
    smtp_tls_ciphers = high
    smtp_tls_security_level = may
    smtpd_tls_security_level = may
    
    smtp_tls_protocols = !SSLv2, !SSLv3
    smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
    smtpd_tls_protocols = !SSLv2, !SSLv3
    smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
    
    smtp_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    smtpd_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    #hope this is enough since it is also added to the mandatory exclusions
    smtp_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    smtpd_tls_exclude_ciphers = aNULL, DES, RC4, MD5
    

背景:它适用于安全导向的公司,具有相当高的安全标准我也不希望任何电子邮件因为这种配置而丢失。

附言:我已经阅读了配置参数这也是我的大部分知识的来源。

答案1

  1. 关于smtp[d]_tls_[mandatory_]ciphers

是的。

  1. 如果我将smtpd_tls_security_level和都设置smtp_tls_security_level为可能,那么只有机会设置是相关的,这意味着我在强制设置中设置什么并不重要?

是的。

  1. 如果我想建立一个安全但仍然是公共的邮件服务器,以下配置(就所使用的加密技术而言)可以吗?

您正在禁用 SSL 并限制密码,但仍允许未加密的流量。我认为,对于与其他邮件服务器的通信,糟糕的加密比没有加密要好。

引用本文应用加密强化 (ACH)经过Bettercrypto

Postfix 有五个内部密码列表,并且可以使用 在这些密码之间切换smtpd_tls_ciphers。但是,我们将其保留为服务器到服务器连接的默认值,因为许多邮件服务器仅支持过时的协议和密码。我们认为糟糕的加密仍然比纯文本传输更好。对于与 MUA 的连接,TLS 是强制性的,并且密码套件已被修改。

对于与邮件客户端的连接,限制密码和协议以及选择好的密码和协议非常有用。

MX 和 SMTP 客户端配置:如第 2.3.1 节所述,由于机会加密,我们不限制与其他邮件服务器通信的密码或协议列表,以避免以纯文本传输。

建议的配置如下:

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
# use 0 for Postfix >= 2.9, and 1 for earlier versions
smtpd_tls_loglevel = 0
# enable opportunistic TLS support in the SMTP server and client
smtpd_tls_security_level = may
smtp_tls_security_level = may
smtp_tls_loglevel = 1
# if you have authentication enabled, only offer it after STARTTLS
smtpd_tls_auth_only = yes
tls_ssl_options = NO_COMPRESSION

smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_mandatory_ciphers=high
tls_high_cipherlist=EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:+CAMELLIA256:+AES256:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!ECDSA:CAMELLIA256-SHA:AES256-SHA:CAMELLIA128-SHA:AES128-SHA
smtpd_tls_eecdh_grade=ultra

这是master.cf

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o tls_preempt_cipherlist=yes

对于给定的密码套件,服务器会优先选择最佳可用密码,如果可能的话,还会选择完全保密,并且还支持所有相关客户端,而不允许使用坏密码。有关更多详细信息,请参阅链接的论文,它提供了有关建议的非常详细的信息,包括理论。上面引用的后缀部分的解释是我提供的(并由许多其他人审阅)。

相关内容