在 Debian 上搭建邮件服务器时,“限流”通常指防止邮件被滥发、控制发送速率、限制用户/IP 并发,可以从 MTA(Postfix / Exim)、防火墙、认证层 几个层面来做。下面以 Postfix(Debian 最常见) 为主说明。
编辑 /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
# 每个认证用户每分钟最多发 20 封
smtpd_sender_rate_limit = 20
需要 Postfix ≥ 3.0
smtpd_recipient_limit = 50
使用 anvil 或 policy 服务。
示例(main.cf):
smtpd_client_event_limit_exceptions = 127.0.0.1
配合:
anvil_rate_time_unit = 3600
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
smtpd_relay_restrictions =
permit_sasl_authenticated
reject_unauth_destination
smtpd_sender_restrictions =
reject_unauthenticated_sender_login_mismatch
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
apt install fail2ban
示例 /etc/fail2ban/jail.local:
[postfix]
enabled = true
port = smtp,submission
maxretry = 5
bantime = 3600
# /etc/dovecot/conf.d/20-imap.conf
mail_max_userip_connections = 10
✅ Postfix 限制连接数
✅ SASL 用户发信频率限制
✅ Policyd 按用户限流
✅ Fail2Ban 防爆破
✅ 防火墙限速
如果你能补充说明:
我可以给你一套可直接用的配置模板。