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

Aki*_*iya 2 ubuntu smtp postfix tls

三个问题:

  1. 如果我错了,请纠正我:
    smtpd_tls_mandatory_ciphers=> 传入强制 TLS 加密的
    smtpd_tls_ciphers设置 => 传入机会性 TLS 加密的
    smtp_tls_mandatory_ciphers设置 => 传出强制 TLS 加密的
    smtp_tls_ciphers设置 => 传出机会性 TLS 加密的设置
  2. 如果我同时设置smtpd_tls_security_levelsmtp_tls_security_levelmay那么只有机会主义设置是相关的,这意味着我在强制性设置中设置了什么无关紧要?
  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
    
    Run Code Online (Sandbox Code Playgroud)

背景:这是一家面向安全的公司,具有相当高的安全标准,我也不希望通过这种配置丢失任何电子邮件。

PS:我已经阅读了配置参数的解释,这也是我大部分知识的来源。

seb*_*bix 6

  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
Run Code Online (Sandbox Code Playgroud)

这对于master.cf

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o tls_preempt_cipherlist=yes
Run Code Online (Sandbox Code Playgroud)

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