用户首先获取SSL证书,配置Postfix的SSL部分,配置Dovecot的SSL部分,检查配置,重启服务,测试连接,设置防火墙,日志排错,设置自动续期。需要参考官方文档或者一些教程,确保每个步骤正确。还需要测试发送和接收邮件,用Thunderbird或者Outlook配置账户,验证是否能够通过SSL/TLS连接成功。因此配置Postfix和Dovecot的SSL/TLS加密需要多个步骤,下面我详细说一下:
1. 获取SSL证书
推荐使用Let's Encrypt的免费证书:
bash
sudo apt install certbot
sudo certbot certonly --standalone -d mail.example.com
证书路径通常为:
证书文件:/etc/letsencrypt/live/mail.example.com/fullchain.pem
私钥文件:/etc/letsencrypt/live/mail.example.com/privkey.pem
2. 配置Postfix的SSL/TLS
编辑主配置文件 /etc/postfix/main.cf:
bash
启用TLS
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
smtpd_tls_security_level = may # 或强制加密改为 encrypt
提高安全性(可选)
smtpd_tls_protocols = !SSLv2, !SSLv3
smtpd_tls_ciphers = high
修改子配置文件 /etc/postfix/master.cf:
启用465(SMTPS)和587(Submission)端口:
bash
submission inet n - y - - smtpd
o syslog_name=postfix/submission
o smtpd_tls_security_level=encrypt # 强制加密
o smtpd_sasl_auth_enable=yes
smtps inet n - y - - smtpd
o syslog_name=postfix/smtps
o smtpd_tls_wrappermode=yes
o smtpd_sasl_auth_enable=yes
3. 配置Dovecot的SSL/TLS
编辑SSL配置文件 /etc/dovecot/conf.d/10-ssl.conf:
bash
ssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
禁用不安全的协议
ssl_min_protocol = TLSv1.2
ssl_cipher_list = EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
检查认证配置 /etc/dovecot/conf.d/10-auth.conf:
bash
auth_mechanisms = plain login
确保端口监听正确(/etc/dovecot/conf.d/10-master.conf):
bash
service imap-login {
inet_listener imaps {
port = 993
ssl = yes
}
service pop3-login {
inet_listener pop3s {
port = 995
ssl = yes
}
4. 重启服务并测试
bash
sudo systemctl restart postfix dovecot
测试命令:
检查端口监听:
bash
sudo netstat -tuln | grep -E '25|465|587|993|995'
测试SMTP加密:
bash
openssl s_client -connect mail.example.com:465 -starttls smtp
测试IMAPS:
bash
openssl s_client -connect mail.example.com:993
5. 防火墙设置
bash
sudo ufw allow 25,465,587,993,995/tcp
6. 证书自动续期
编辑Crontab:
bash
sudo crontab -e
添加:
bash
0 3 * * * certbot renew --quiet --post-hook "systemctl reload postfix dovecot"
7. 高级安全配置(可选)
HSTS(HTTP严格传输安全):在邮件客户端支持的场景下配置。
DNSSEC/DANE:增强证书验证的安全性。
SPF/DKIM/DMARC:配置反垃圾邮件策略。
常见问题排查
权限问题:确保私钥可读(sudo chmod 600 /etc/letsencrypt/live/mail.example.com/privkey.pem)。
日志检查:查看/var/log/mail.log或journalctl -u postfix。
服务冲突:确保端口未被占用(如Nginx占用443需暂停后再续期证书)。
用户通过完成以上六个步骤后,邮件服务器将通过SSL证书加密通信,提升安全性。建议使用邮件客户端(如Thunderbird)测试发送和接收功能。