温馨提示×

Debian邮件服务器如何限流

小樊
49
2026-09-14 17:45:41
栏目: 云计算

在 Debian 上搭建邮件服务器时,“限流”通常指防止邮件被滥发、控制发送速率、限制用户/IP 并发,可以从 MTA(Postfix / Exim)防火墙认证层 几个层面来做。下面以 Postfix(Debian 最常见) 为主说明。


一、Postfix 基础限流(最常用)

1. 限制单客户端连接与并发

编辑 /etc/postfix/main.cf

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

# 同一 IP 连接速率限制(连接/秒)
smtpd_client_connection_rate_limit = 10

# 同一 IP 新连接频率限制
smtpd_client_new_tls_session_rate_limit = 10

重载:

systemctl reload postfix

2. 限制单用户发信频率(SASL 用户)

# 每个认证用户每分钟最多发 20 封
smtpd_sender_rate_limit = 20

需要 Postfix ≥ 3.0


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

smtpd_recipient_limit = 50

4. 限制每小时/每天发送总量(按用户)

使用 anvilpolicy 服务。

示例(main.cf):

smtpd_client_event_limit_exceptions = 127.0.0.1

配合:

anvil_rate_time_unit = 3600

二、使用 Postfix Policy 限流(推荐)

1. 安装 postfix-policyd

apt install postfix-policyd

配置 /etc/postfix-policyd.conf

SENDER_RATELIMIT=1
SENDER_RATELIMIT_LIMIT=100
SENDER_RATELIMIT_TIME=3600

Postfix 中启用:

smtpd_recipient_restrictions =
  check_policy_service inet:127.0.0.1:10031

三、限制外发邮件(防 spam)

1. 只允许认证用户外发

smtpd_relay_restrictions =
  permit_sasl_authenticated
  reject_unauth_destination

2. 限制匿名发信

smtpd_sender_restrictions =
  reject_unauthenticated_sender_login_mismatch

四、防火墙层限流(iptables / nftables)

iptables 限制 SMTP 连接速率

iptables -A INPUT -p tcp --dport 25 -m connlimit --connlimit-above 5 -j DROP
iptables -A INPUT -p tcp --dport 25 -m limit --limit 10/min -j ACCEPT

五、Fail2Ban 自动封禁暴力/滥发

apt install fail2ban

示例 /etc/fail2ban/jail.local

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

六、Dovecot(IMAP/POP3)限流

# /etc/dovecot/conf.d/20-imap.conf
mail_max_userip_connections = 10

七、典型安全限流方案(推荐组合)

✅ Postfix 限制连接数
✅ SASL 用户发信频率限制
✅ Policyd 按用户限流
✅ Fail2Ban 防爆破
✅ 防火墙限速


如果你能补充说明:

  • 用的是 Postfix / Exim / Sendmail
  • 收信限流还是发信限流
  • 是否用于 企业邮箱 / 营销邮件

我可以给你一套可直接用的配置模板

0