Postfix限制传入或者接收电子邮件的速率

时间:2020-01-09 10:43:02  来源:igfitidea点击:

问题描述:我注意到垃圾邮件发送者不断尝试建立连接(电子邮件泛洪攻击)。
如何对传入邮件实施一些限制,以便保护托管电子邮件域?

解决方法:Postfix(smtpd守护程序)可以对传入的电子邮件实施许多限制。
这将阻止电子邮件泛洪攻击。

僵尸程序连接到您的Postfix电子邮件服务器,并发送垃圾命令或者垃圾邮件,试图使您的服务器崩溃。
您可以限制:

  • 消息中的行长,依此类推

  • 邮件大小

  • 单次发送的收件人数

尝试在postfix main.cf配置文件中遵循以下指令:smtpd_error_sleep_time客户端犯了多于$smtpd_soft_error_limit错误且少于smtpd_hard_error_limit错误的SMTP服务器响应延迟,而没有传递邮件。

smtpd_soft_error_limit:在Postfix SMTP服务器减慢其所有响应速度之前,允许远程SMTP客户端在不发送邮件的情况下犯的错误数。

smtpd_hard_error_limit:允许远程SMTP客户端在不传递邮件的情况下所犯的最大错误数。
超过限制后,Postfix SMTP服务器将断开连接。

打开配置文件

# vi main.cf

追加以下指令:

smtpd_error_sleep_time = 1s
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 20

保存并重新启动/重新加载后缀配置

# /etc/init.d/postfix restart

在每个错误(例如未提供HELO命令或者FQDN主机名不存在等)之前,Postfix会等待一秒钟,直到10个此类错误后,postfix才会开始增加延迟。
如果错误限制达到20,则Postfix将断开客户端连接。

您可以从/var/log/maillog文件中看到这一点:

Dec 15 16:50:59 server postfix/anvil[20799]: statistics: max connection rate 1/60s for (smtp:80.224.37.124) at Dec 15 16:47:29
Dec 15 16:50:59 server postfix/anvil[20799]: statistics: max connection count 1 for (smtp:80.224.37.124) at Dec 15 16:47:29
Dec 15 16:50:59 server postfix/anvil[20799]: statistics: max cache size 2 at Dec 15 16:47:38