三个问题:
smtpd_tls_mandatory_ciphers =>传入强制TLSencryption的设置 smtpd_tls_ciphers =>设置传入的机会性TLSencryption smtp_tls_mandatory_ciphers =>设置传出强制TLSencryption smtp_tls_ciphers =>设置传出机会TLSencryption smtpd_tls_security_level和smtp_tls_security_level ,那么只有机会设置才是相关的,这意味着我在强制设置中设置的内容并不重要。 如果我想做一个安全的,但仍然公共邮件服务器将下面的configuration(关于使用的密码学)是好吗? 我不太确定目前有多less台服务器支持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
背景:这是一个面向安全的公司,具有相当高的安全标准, 但我也不希望任何电子邮件迷失在这个configuration。
PS:我已经阅读了configuration参数的解释,也是我的知识最多的地方。
smtp[d]_tls_[mandatory_]ciphers 是。
smtpd_tls_security_level和smtp_tls_security_level ,那么只有机会设置才是相关的,这意味着我在强制设置中设置的内容并不重要。 是。
您正在禁用SSL并限制密码,但仍然允许未encryption的通信。 我认为坏encryption比没有encryption更好,与其他邮件服务器通信。
引用Bettercrypto的文章Applied Crypto Hardening(ACH)
Postfix有五个内部密码列表,并且可以在
smtpd_tls_ciphers之间切换。 但是,我们将其保留为服务器到服务器连接的默认值,因为许多邮件服务器只支持过时的协议和密码。 我们认为糟糕的encryption还是比纯文本传输更好。 对于连接到MUA,TLS是强制性的,密码套件被修改。
对于邮件客户端的连接,限制密码和协议以及优先select密码是非常有用的。
MX和SMTP客户端configuration:如2.3.1节所述,由于机会性encryption,我们不限制用于与其他邮件服务器通信的密码或协议列表,以避免以纯文本forms传输。
推荐的configuration如下:
# 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
对于给定的密码组,服务器倾向于使用最好的密码,如果可能的话也使用“完美保密”,并支持所有相关的客户端,而不允许使用不好的密码。 有关更多详细信息,请参阅链接的文件,它提供了有关build议的详细信息,包括理论。 上面引用的postfix部分的解释是由我(和许多其他审查)贡献。