温馨提示×

debian邮件服务器怎么限速

小樊
45
2026-09-29 18:44:57
栏目: 云计算

在 Debian 上搭建邮件服务器时,“限速”通常指防止单用户/IP 发送过多邮件、避免被滥用或被拉黑。常见做法分三层:MTA 层限速、系统/网络层限速、认证用户限速。下面以最常见的几种邮件服务器为例说明。


一、Postfix(最常用)限速

1. 单 IP / 单客户端连接限速

编辑 /etc/postfix/main.cf:

# 同一 IP 最大并发连接
smtpd_client_connection_count_limit = 10

# 同一 IP 连接速率限制(单位:连接/秒)
anvil_rate_time_unit = 60s
smtpd_client_connection_rate_limit = 30

# 同一客户端最大邮件数/时间
smtpd_client_message_rate_limit = 50

重载:

postfix reload

2. 单发件人限速(防止用户滥发)

# 单个 sender 每分钟最多发多少封
smtpd_sender_rate_limit = 20

3. 单封邮件收件人数量限制

smtpd_recipient_limit = 100

4. 限制未认证用户(重要)

只给认证用户发外网:

smtpd_relay_restrictions =
  permit_sasl_authenticated
  reject_unauth_destination

二、使用 Postfix + policyd / postfwd(高级限速)

推荐:postfwd(轻量、强大)

apt install postfwd

示例规则(限制用户每小时 100 封):

id=LIMIT_USER
  sasl_username=~.*@example.com
  action=quotient(100/3600/REJECT Limit exceeded)

启用:

# main.cf
smtpd_recipient_restrictions =
  check_policy_service inet:127.0.0.1:10040

三、Exim(Debian 默认有时用)

限速在 /etc/exim4/exim4.conf.template:

acl_check_rcpt:
  deny
    authenticated = *
    ratelimit = 100 / 1h
    message = Sending too fast

四、系统/网络层限速(防暴力/刷邮件)

使用 fail2ban

apt install fail2ban

保护 SMTP:

[postfix]
enabled = true
port = smtp,submission
maxretry = 5
bantime = 1h

使用 nftables / iptables 限速

iptables -A INPUT -p tcp --dport 25 -m limit --limit 10/min -j ACCEPT

五、常见建议配置(生产环境)

  • 必须开启 SASL 认证
  • 必须限制 未认证中继
  • 单用户:
    • 每小时 ≤ 100 封
    • 每分钟 ≤ 10 封
  • 单 IP:
    • 并发 ≤ 10
  • 启用 fail2ban
  • 启用 DKIM + SPF + DMARC

六、如果你告诉我:

  • 用的什么 MTA(Postfix / Exim / Sendmail)
  • 是发信限速还是收信限速
  • 是用户级还是IP 级

我可以直接给你一份可用的配置文件。

0 踩