温馨提示×

Ubuntu邮件服务器怎么防垃圾

小樊
48
2026-07-05 13:13:56
栏目: 云计算

在Ubuntu上搭建邮件服务器(如Postfix + Dovecot)后,防垃圾邮件通常需要“多层防御”。下面按从外到内、从简单到进阶给你一套实战方案,适合生产环境。


一、基础层:拒绝明显垃圾(必须做)

1️⃣ 使用 Postfix 基础限制(第一道防线)

编辑 /etc/postfix/main.cf

smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks,
    reject_invalid_helo_hostname,
    reject_non_fqdn_helo_hostname

smtpd_sender_restrictions =
    permit_mynetworks,
    reject_non_fqdn_sender,
    reject_unknown_sender_domain

smtpd_recipient_restrictions =
    permit_mynetworks,
    reject_unauth_destination,
    reject_non_fqdn_recipient,
    reject_unknown_recipient_domain

✅ 作用:

  • 拒绝伪造 HELO
  • 拒绝无效域名发信
  • 防止成为开放中继(Open Relay)

二、验证发件人真实性(非常重要)

2️⃣ SPF(发件人IP是否合法)

安装检查工具:

sudo apt install postfix-policyd-spf-python

配置:

policyd-spf_time_limit = 3600
smtpd_recipient_restrictions =
    ...
    check_policy_service unix:private/policyd-spf

✅ 防止伪造发件人域名


3️⃣ DKIM(验证邮件签名)

安装:

sudo apt install opendkim opendkim-tools

关键配置:

# /etc/opendkim.conf
Domain example.com
KeyFile /etc/opendkim/keys/example.com.private
Selector mail
Socket inet:8891@localhost

Postfix 中启用:

smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
milter_protocol = 2
milter_default_action = accept

✅ 防止邮件被篡改、提高可信度


4️⃣ DMARC(策略执行)

DNS 添加:

_dmarc.example.com TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com"

✅ 配合 SPF + DKIM
✅ 自动处理伪造邮件


三、黑名单 & RBL(非常有效)

5️⃣ 使用 DNS 黑名单(RBL)

smtpd_recipient_restrictions =
    ...
    reject_rbl_client zen.spamhaus.org,
    reject_rbl_client bl.spamcop.net

⚠️ 注意:

  • 必须允许本地网络
  • 不要同时加太多 RBL

四、内容级防垃圾(SpamAssassin)

6️⃣ 安装 SpamAssassin

sudo apt install spamassassin spamc

启用服务:

sudo systemctl enable spamassassin
sudo systemctl start spamassassin

Postfix 集成:

content_filter = smtp-amavis:[127.0.0.1]:10024

(通常配合 Amavis)


五、进阶防护(推荐)

7️⃣ 发信频率限制(防爆破)

smtpd_client_connection_rate_limit = 20
smtpd_client_message_rate_limit = 10

8️⃣ Greylisting(灰名单)

sudo apt install postgrey
smtpd_recipient_restrictions =
    check_policy_service inet:127.0.0.1:10023

✅ 可有效拦截“一次性垃圾服务器”


六、用户层防护

  • 启用 Dovecot Sieve
  • 用户可自定义规则
  • 自动分拣垃圾邮件到 Junk

七、推荐组合(生产环境)

最低配置

  • Postfix 基础限制
  • RBL
  • SPF

标准配置

  • SPF + DKIM + DMARC
  • SpamAssassin
  • Greylisting

企业级

  • Amavis
  • ClamAV(防病毒)
  • Fail2ban(防暴力)

八、常见错误

❌ 忘记 permit_mynetworks
❌ 同时启用太多 RBL
❌ 没做反向解析(PTR)
❌ 开放中继(被拉黑)


九、我可以继续帮你

你可以直接告诉我:

  1. 用的是 Postfix / Exim / Sendmail
  2. 是否有 Webmail(Roundcube / RainLoop)
  3. 个人邮箱 还是 企业邮箱

我可以给你一份 可直接复制的配置文件模板

0