在 Debian 上搭建加密邮件服务器,通常是指 SMTP / IMAP / POP3 的传输加密(TLS/SSL),以及用户认证加密。下面按最常见、最实用的方案一步步说明。
✅ 邮件服务组合(经典)
✅ 加密目标
假设你有:
mail.example.com
DNS 设置:
A mail.example.com → 服务器IP
MX example.com → mail.example.com
sudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d \
certbot ufw fail2ban
sudo certbot certonly --standalone -d mail.example.com
证书路径:
/etc/letsencrypt/live/mail.example.com/
fullchain.pem
privkey.pem
⚠️ 确保 465 / 80 / 443 端口未被占用
/etc/postfix/main.cf# TLS 证书
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.example.com/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/mail.example.com/privkey.pem
# 启用 TLS
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
# 强制加密(推荐)
smtpd_tls_security_level = encrypt
# 端口
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
# 认证
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
编辑 /etc/postfix/master.cf:
submission inet n - y - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_relay_restrictions=permit_sasl_authenticated,reject
/etc/dovecot/conf.d/10-ssl.confssl = required
ssl_cert = </etc/letsencrypt/live/mail.example.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
编辑 /etc/dovecot/conf.d/10-master.conf:
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
✅ 建议只开放 993 / 995
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
disable_plaintext_auth = yes
sudo ufw allow 25
sudo ufw allow 465
sudo ufw allow 587
sudo ufw allow 993
sudo ufw allow 995
sudo ufw enable
sudo systemctl enable certbot.timer
续期后重载服务:
sudo postfix reload
sudo systemctl reload dovecot
openssl s_client -connect mail.example.com:465
openssl s_client -connect mail.example.com:993
| 问题 | 原因 |
|---|---|
| 证书不受信任 | 用 IP / 内网域名 |
| 认证失败 | SASL 配置错误 |
| 发不出去 | 端口被封 |
| 客户端连不上 | 防火墙未放行 |
✅ DKIM / SPF / DMARC(防垃圾邮件)
✅ Postfix + Dovecot + MariaDB(虚拟用户)
✅ 邮件加密(S/MIME / PGP)
✅ Webmail(Roundcube)
你可以直接告诉我:
我可以给你一个 完整可复制的配置文件包,或直接帮你排错。