在 Ubuntu 邮件服务器中,“认证”通常指 SMTP 发信认证(SMTP AUTH),以及可选的 IMAP/POP3 收信认证。下面按常见场景系统性说明。
用途:防止邮件服务器被当成“开放中继(Open Relay)”被滥用。
Postfix + Dovecot SASL + 系统用户 / 虚拟用户
mail.example.comsudo apt update
sudo apt install postfix dovecot-core dovecot-imapd dovecot-pop3d
编辑:
sudo nano /etc/dovecot/conf.d/10-master.conf
添加或修改:
service auth {
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
}
编辑:
sudo nano /etc/dovecot/conf.d/10-auth.conf
启用明文认证(在 STARTTLS 下安全):
disable_plaintext_auth = no
auth_mechanisms = plain login
✅ 推荐:使用系统用户认证
# 使用 PAM(系统用户)
# 默认已启用
编辑:
sudo nano /etc/postfix/main.cf
添加:
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions =
permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_destination
sudo systemctl restart dovecot
sudo systemctl restart postfix
telnet mail.example.com 25
EHLO test.com
STARTTLS
AUTH LOGIN
或使用 swaks:
sudo apt install swaks
swaks --to user@example.com \
--from user@example.com \
--server mail.example.com \
--auth \
--port 587
Dovecot 默认已支持:
143(STARTTLS)993(SSL)110995认证方式:
user@example.com)如果你不想用 Linux 系统用户,可用:
常见组合:
Postfix + Dovecot + MySQL + PostfixAdmin
| 问题 | 原因 |
|---|---|
| 535 Authentication failed | 用户名/密码错误 |
| no mechanism found | auth_mechanisms 未启用 |
| permission denied | unix socket 权限问题 |
| 中继被拒绝 | 未启用 permit_sasl_authenticated |
✅ 启用 TLS:
587 + STARTTLS993995✅ 禁用开放中继
✅ 使用强密码
✅ 配合 Fail2ban 防暴力破解
你可以告诉我:
我可以直接给你 完整可复制配置方案。