
1 基础知识
1.1 限制单位时间内最大消息数量
smtpd_client_message_rate_limit = 1000
需要注意的是,
– 参数用于限制smtp客户端(邮件发送者)单位时间内能发送的最大消息数量
– 参数用于防止邮件服务器被单个客户端发送过多的消息而导致过载
– 参数默认值为“0”(即表示禁用此功能)
– 参数时间单位由“anvil_rate_time_unit”配置参数指定,默认值为“60s”
如果你需要验证当前配置,可以使用如下命令,
postconf | grep -i anvil_rate_time_unit
1.2 限制单位时间内最大收件人数量
smtpd_client_recipient_rate_limit = 1000
需要注意的是,
– 参数用于限制smtp客户端(邮件发送者)单位时间内能发送的最大收件人数量
– 参数用于防止邮件服务器被单个客户端发送过多的收件人而导致服务器过载
– 参数默认值为“0”(即表示禁用此功能)
– 参数时间单位由“anvil_rate_time_unit”配置参数指定,默认值为“60s”
1.3 限制单位时间内最大连接数量
smtpd_client_connection_rate_limit = 1000
需要注意的是,
– 参数用于限制smtp客户端(邮件发送者)单位时间内能发送的最大连接数量
– 参数用于防止邮件服务器被单个客户端建立过多的连接而导致服务器过载
– 参数默认值为“0”(即表示禁用此功能)
– 参数时间单位由“anvil_rate_time_unit”配置参数指定,默认值为“60s”
2 最佳实践
2.1 修改服务配置
vim /etc/postfix/main.cf
加入如下配置,
smtpd_client_message_rate_limit = 300 smtpd_client_recipient_rate_limit = 1000 smtpd_client_connection_rate_limit = 1000
另外,以下两个参数的默认值可能会影响你的设置,你需要特别注意,
mynetworks = 0.0.0.0/0 smtpd_client_event_limit_exceptions = ${smtpd_client_connection_limit_exceptions:$mynetworks}
如上所示,由于例外命令“smtpd_client_event_limit_exceptions”的定义包含变量“mynetworks”的,该变量的值为“0.0.0.0/0”,因此,所有客户端被设置为例外。
然后,你可以使用如下命令检查配置语法,
postfix check
2.2 重载服务使配置生效
systemctl reload postfix
2.3 测试配置
关于以上参数,我们建议你使用如下方法进行压力测试,你需要连续发送超过300封以上的邮件,
参阅文档
====================
https://www.postfix.org/postconf.5.html
没有评论