在 Debian 上搭建邮件服务器时,防垃圾邮件(Anti-Spam)通常需要 多层防护。下面给你一套常用且实用的方案,从“基础 → 中级 → 高级”来配置,适合生产环境。
垃圾邮件防护的第一步是 身份可信。
✅ 必须配置的 DNS 记录:
example.com. TXT "v=spf1 mx -all"
_dmarc.example.com. TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"
Debian 官方推荐:
apt update
apt install postfix dovecot-core dovecot-imapd
确保 Postfix 配置中:
smtpd_helo_required = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_unauth_destination
编辑 /etc/postfix/main.cf:
smtpd_recipient_restrictions =
permit_sasl_authenticated,
reject_unauth_destination,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net
✅ 常用 RBL:
zen.spamhaus.org(最常用)bl.spamcop.netb.barracudacentral.org⚠️ 注意:Spamhaus 对 DNS 有要求,避免用公共 8.8.8.8
smtpd_client_connection_rate_limit = 20
smtpd_client_message_rate_limit = 10
anvil_rate_time_unit = 60s
apt install spamassassin spamc
systemctl enable spamassassin
systemctl start spamassassin
/etc/postfix/master.cf
smtp inet n - y - - smtpd
-o content_filter=spamassassin
spamassassin unix - n n - - pipe
user=debian-spamd argv=/usr/bin/spamc -f -e
/usr/sbin/sendmail -oi -f ${sender} ${recipient}
SpamAssassin 会给邮件打分:
第一次拒绝,要求对方稍后重试(正常邮件服务器会重试,垃圾邮件软件通常放弃)
apt install postgrey
/etc/postfix/main.cf
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:10023
✅ 可拦截 30%~50% 垃圾邮件
apt install opendkim opendkim-tools
opendkim-genkey -s mail -d example.com
mail._domainkey.example.com TXT "v=DKIM1; k=rsa; p=..."
apt install clamav clamav-daemon
Postfix + ClamAV 可过滤带毒邮件
✅ 最常用稳定方案
Postfix + Dovecot
+ SpamAssassin
+ Postgrey
+ RBL
+ SPF/DKIM/DMARC
✅ 企业级
Postfix + Amavisd-new
+ SpamAssassin + ClamAV
❌ 开放 open relay
❌ 没有 PTR 记录
❌ 使用 25 端口发信(应走 587 + 认证)
❌ 不做日志监控
tail -f /var/log/mail.log
安装 fail2ban:
apt install fail2ban
防止 SMTP 暴力破解。
我可以:
你现在是 个人邮箱 / 企业邮箱 / 邮件列表?我可以按你的场景定制方案。