三个问题:
- 如果我错了,请纠正我:
smtpd_tls_mandatory_ciphers
=> 传入强制 TLS 加密设置
smtpd_tls_ciphers
=> 传入机会性 TLS 加密设置
smtp_tls_mandatory_ciphers
=> 传出强制 TLS 加密设置
smtp_tls_ciphers
=> 传出机会性 TLS 加密设置 - 如果我同时设置了两者,
smtpd_tls_security_level
那么smtp_tls_security_level
只有may
机会设置是相关的,这意味着我在强制设置中设置什么并不重要? 如果我想创建一个安全但仍然公开的邮件服务器,以下配置(关于使用的加密)可以吗?我不太确定目前有多少服务器支持 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
- 关于
smtp[d]_tls_[mandatory_]ciphers
是的。
- 如果我将
smtpd_tls_security_level
和都设置smtp_tls_security_level
为可能,那么只有机会设置是相关的,这意味着我在强制设置中设置什么并不重要?
是的。
- 如果我想建立一个安全但仍然是公共的邮件服务器,以下配置(就所使用的加密技术而言)可以吗?
您正在禁用 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
对于给定的密码套件,服务器会优先选择最佳可用密码,如果可能的话,还会选择完全保密,并且还支持所有相关客户端,而不允许使用坏密码。有关更多详细信息,请参阅链接的论文,它提供了有关建议的非常详细的信息,包括理论。上面引用的后缀部分的解释是我提供的(并由许多其他人审阅)。