如何利用 SSL/TLS 保护你的 Linux 邮件服务( 二 )


现在你就有全部的设置邮件服务安全所需文件了:私匙文件 mail.mydomain.key 和组合的公开证书文件 mail.mydomain.pem 。
为你的文件生成一个安全的文件夹不管你是的证书是自签发的或者从机构购买,你都需要生成一个安全的,管理员拥有的文件夹用于保存这两个文件 。可以使用以下命令来生成:
$ mkdir /etc/pki/tls$ chown root:root /etc/pki/tls$ chmod 700 /etc/pki/tls在复制文件到 /etc/pki/tls 后,再次设置这些文件的权限:
$ chmod 600 /etc/pki/tls/*配置你的 SMTP 和 IMAP 服务接下来,让 SMTP 和 IMAP 服务使用新的安全证书 。我们用 postfix 和 dovecot 来作为例子 。
用你顺手的编辑器来编辑 /etc/postfix/main.cf 文件 。添加以下几行:
smtpd_use_tls = yessmtpd_tls_cert_file = /etc/pki/tls/mail.mydomain.pemsmtpd_tls_key_file = /etc/pki/tls/mail.mydomain.key自定义选项以下选项可以启用或禁用各种加密算法,协议等等:
smtpd_tls_eecdh_grade = strongsmtpd_tls_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtpd_tls_mandatory_protocols= !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtpd_tls_mandatory_ciphers = highsmtpd_tls_security_level=maysmtpd_tls_ciphers = hightls_preempt_cipherlist = yessmtpd_tls_mandatory_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULLsmtpd_tls_exclude_ciphers = aNULL, MD5 , DES, ADH, RC4, PSD, SRP, 3DES, eNULLsmtp_tls_mandatory_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1smtp_tls_protocols = !SSLv2, !SSLv3, !TLSv1, !TLSv1.1编辑 /etc/dovecot/dovecot.conf 文件,添加以下三行:
ssl = requiredssl_cert = </etc/pki/tls/mail.mydomain.pemssl_key = </etc/pki/tls/mail.mydomain.key添加下列更多选项来启用或禁用各种加密算法、协议等等(我把这些留给你来理解):
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:ALL:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SSLv2ssl_prefer_server_ciphers = yesssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1ssl_min_protocol = TLSv1.2设置 SELinux 上下文如果你的 Linux 发行版启用了 SELinux,请为你的新证书文件设置正确的 SELinux 上下文 。
对于 Postfix 设置 SELinux:
$ chcon -u system_u -t cert_t mail.mydomain.*对于 Dovecot 设置 SELinux:
$ chcon -u system_u -t dovecot_cert_t mail.mydomain.*重启这些服务,并与你相应更新过的电子邮件客户端配置连接 。有些电子邮件客户端会自动探测到新的端口,有些则需要你手动更新 。
测试配置用 openssl 命令行和 s_client 插件来简单测试一下:
$ openssl s_client -connect mail.mydomain.com:993$ openssl s_client -starttls imap -connect mail.mydomain.com:143$ openssl s_client -starttls smtp -connect mail.mydomain.com:587这些测试命令会打印出很多信息,关于你使用的连接、证书、加密算法、会话和协议 。这不仅是一个验证新设置的好方法,也可以确认你使用了适当的证书,以及在 postfix 或 dovecot 配置文件中定义的安全设置正确 。
【如何利用 SSL/TLS 保护你的 Linux 邮件服务】保持安全!


推荐阅读