在 Debian 邮件服务器上做限速,通常要分场景:发信限速(防 spam)、收信限速、SMTP 连接限速、IP/用户限速。下面按最常见方案给你一个清晰、可直接落地的说明。
如果你用的是 Postfix(Debian 默认邮件服务器),这是最标准做法。
在 /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
使用 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
smtpd_client_connection_count_limit = 5
smtpd_client_connection_rate_limit = 20
smtpd_client_connection_limit = 3
policyd-rate-limit(推荐)适合:
apt install policyd-rate-limit
limit_by = sasl_username
max_msgs = 50
period = 3600
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:12345
✅ 非常适合防止用户发垃圾邮件
Dovecot 本身不做 SMTP 限速,但可限制:
mail_max_userip_connections = 10
一般在 /etc/dovecot/conf.d/20-imap.conf
iptablesiptables -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
你可以直接告诉我:
我可以给你精确到你环境的完整配置模板。