Ubuntu 14.04 是否支持并启用完美前向保密nginx、dovecot 和 postfix 等服务器的默认 TLS 配置中的密码?
Ubuntu 12.04 等早期版本甚至没有编译所需的密码(请参阅LP#1197884或者如何在 Nginx 中启用 TLS 1.2?)。
答案1
不。但这是因为 Ubuntu 无法支持或启用此功能。这取决于相应的软件是否支持此功能。
您需要在配置中添加以下几行...
阿帕奇
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \
EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"
Nginx
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 \
EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 \
EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
多夫科特
ssl_cipher_list = EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4
ssl_prefer_server_ciphers = yes
后缀
#the dh params
smtpd_tls_dh1024_param_file = /etc/postfix/dh_1024.pem
smtpd_tls_dh512_param_file = /etc/postfix/dh_512.pem
#enable ECDH
smtpd_tls_eecdh_grade = strong
#enabled SSL protocols, don't allow SSLv2
smtpd_tls_protocols= !SSLv2
smtpd_tls_mandatory_protocols= !SSLv2
#allowed ciphers for smtpd_tls_security_level=encrypt
smtpd_tls_mandatory_ciphers = high
#allowed ciphers for smtpd_tls_security_level=may
#smtpd_tls_ciphers = high
#enforce the server cipher preference
tls_preempt_cipherlist = yes
#disable following ciphers for smtpd_tls_security_level=encrypt
smtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
#disable following ciphers for smtpd_tls_security_level=may
#smtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULL
#enable TLS logging to see the ciphers for inbound connections
smtpd_tls_loglevel = 1
#enable TLS logging to see the ciphers for outbound connections
smtp_tls_loglevel = 1
有一些系统要求和其他配置设置。更多信息请参见以下 2 个链接:
答案2
是的,所有受支持的 Ubuntu 版本都附带 OpenSSL 1.0.1+,并且大多数软件都与 OpenSSL 链接以实现 TLS 安全。
请记住,正确设置合适的 TLS 服务器可能很复杂。以下是一些快速的一般建议。
服务器端密码套件排序
OpenSSL 的默认密码套件包括对 PFS 的支持,但在握手级别不优先考虑这一点。此外,应用程序可能有自己的默认密码套件设置来初始化 OpenSSL。
定期检查新建议
始终将您自己的密码套件/协议设置设置为现代建议。时不时会发现漏洞,如果仍然使用,可能会降低安全性。例如,应该禁用 RC4,但两年前建议优先考虑 BEAST 攻击。几周后,OpenSSL 中修补了这个问题,但人们仍在使用 RC4... :(
创建 DH 参数!
此外,千万不要忘记创建 DH 参数,否则 PFS 将不会用于非 ECDHE 密码套件!这是我周围人常犯的一个错误。OpenSSL 将在没有旧式 DH 参数的情况下初始化,从而导致非 ECDHE 客户端缺少 PFS。
遵循最新建议
这个由 Mozilla 安全团队管理的 wiki 页面保存了他们建议的简单说明和理由列表。
https://wiki.mozilla.org/Security/Server_Side_TLS
强烈建议遵循这个!
在线检查
例如使用 Qualys SSL Labs 测试:https://www.ssllabs.com/ssltest/并遵循建议。获得 A+ 分数是非常有可能的。
答案3
是的,Ubuntu 14.04 默认支持 Forward Security。
默认配置让客户端决定是否启用它。Chrome、Firefox 和 Safari 会请求它。