温馨提示×

Debian邮件服务器如何限速

小樊
37
2026-07-07 13:13:09
栏目: 云计算

在 Debian 邮件服务器上做限速,通常要分场景:发信限速(防 spam)收信限速SMTP 连接限速IP/用户限速。下面按最常见方案给你一个清晰、可直接落地的说明。


一、最常见方案(推荐)

Postfix + Policy(smtpd限制)

如果你用的是 Postfix(Debian 默认邮件服务器),这是最标准做法。


二、按发信速率限速(推荐)

1️⃣ 限制单个用户发信频率

/etc/postfix/main.cf 中:

smtpd_client_message_rate_limit = 20
smtpd_client_recipient_rate_limit = 50
smtpd_client_connection_rate_limit = 10

含义:

  • message_rate_limit:单位时间内最多发多少封邮件
  • recipient_rate_limit:单位时间内最多发给多少收件人
  • connection_rate_limit:单位时间内最多建立多少连接

⚠️ 默认单位是 每分钟

重启 Postfix:

systemctl restart postfix

2️⃣ 限制单个 SASL 用户(登录用户)

使用 Anvil 进程(Postfix 自带):

smtpd_client_event_limit_exceptions = ${smtpd_client_event_limit_exceptions}, permit_sasl_authenticated

然后配合:

smtpd_client_message_rate_limit = 30

✅ 未认证用户会被限速
✅ 认证用户可单独处理


三、限制单封邮件大小(防滥用)

message_size_limit = 10485760   # 10MB

四、限制收信速率(防攻击)

1️⃣ 限制单 IP 连接数

smtpd_client_connection_count_limit = 5
smtpd_client_connection_rate_limit = 20

2️⃣ 限制单 IP 同时连接

smtpd_client_connection_limit = 3

五、高级限速(更精准)

✅ 使用 policyd-rate-limit(推荐)

适合:

  • 按邮箱
  • 按 IP
  • 按 DOMAIN
  • 支持 Redis

安装

apt install policyd-rate-limit

配置示例

limit_by = sasl_username
max_msgs = 50
period = 3600

Postfix 调用

smtpd_recipient_restrictions =
    check_policy_service inet:127.0.0.1:12345

✅ 非常适合防止用户发垃圾邮件


六、Dovecot(IMAP/POP3)限速(较少用)

Dovecot 本身不做 SMTP 限速,但可限制:

mail_max_userip_connections = 10

一般在 /etc/dovecot/conf.d/20-imap.conf


七、防火墙层限速(兜底)

使用 iptables

iptables -A INPUT -p tcp --dport 25 -m conntrack --ctstate NEW \
-m limit --limit 10/min -j ACCEPT

⚠️ 粗暴,不推荐作为唯一方案


八、推荐配置组合(生产环境)

防止 spam & 滥用

smtpd_client_message_rate_limit = 20
smtpd_client_recipient_rate_limit = 40
smtpd_client_connection_rate_limit = 10
message_size_limit = 10485760

配合 policyd配合 fail2ban


九、排查命令

postconf | grep limit
mailq
postsuper -d ALL

十、我可以进一步帮你

你可以直接告诉我:

  1. 用的是 Postfix / Exim / Sendmail
  2. 限速目的:防 spam / 防刷 / 租户隔离
  3. 是否使用 SASL / Dovecot / Webmail

我可以给你精确到你环境的完整配置模板

0