Centos下设置Sendmail速率和连接并发限制

我用的是 Centos 5.5,Sendmail 是自动内置的,版本号为 8.13.8-8。如果你不确定你的系统是否已经安装有 sendmail,可以输入以下命令查看:

 rpm –qa grep sendmail

如果有安装的话就会显示你的版本号,我的显示如下:

grep-2.5.1-55.el5
Sendmail-8.13.8-8.1.e15_7

如果不是博客评论回邮通知需要 Smtp ,我会把它删了,因为每天都会接收到大量的垃圾邮件。而 Smtp 进程太多的话,会引起服务器崩溃,严重的话VPS被封,听了我的 VPS 卖家这么一说,我连忙查找一下要怎么限制 senmail 的并发。

Sendmail 8.13 增加了一个 Rate control 功能,它可以一个主机一个主机地,或者一个网络一个网络地设定限制,限制接受从这些地方来的传入连接的速率。对于无法在不造成问题的前提下彻底封锁垃圾邮件源的地方(像拨号用户比例很高的大型ISP),这项限制特别有助于放慢垃圾邮件的速度。要启用速率控制,可以在 /etc/mail/sendmail.mc 文件里加上如下一行:

FEATURE('ratecontrol', 'no delay', 'terminate')


此外,你还必须在/etc/mail/access文件里列出要被控制的主机或者网络及其限制阈值。例如,下面两行:

ClientRate: 192.168.6.17 2
ClientRate: 170.65.3.4 10

意思是限制192.168.6.17和170.65.3.4这两台主机每分钟分别只能有2次和10次新连接。

Conncontrol功能对并发连接数做了类似的限制。你可以在 /etc/mail/sendmail.mc 文件里加上下面这样一行配置启用该功能:

FEATURE('conncontrol', 'no delay', 'terminate')

和Rate control一样,你可以在/etc/mail/access文件里指定要限制的主机和网络:

ClientConn: 192.168.2.8 2
ClientConn: 175.14.4.1 7
ClientConn:        10

上述配置的结果为:限制 192.168.2.8 的并发连接数为 2, 175.144.4.1 的并发连接数为 7,而所有其他主机的并发连接数为 10。我只有一个主机,只加了最后一句话。

最后一步很重要,命令行重启sendmail:

 /etc/rc.d/init.d/sendmail restart

至此,配置已结束,不了解Sendmail的工作原理,也不知有没设置出错,如果有错误的话请留言告知。

加入对话

5条评论

    1. 现在才知SMTP和SENMAIL好像不是同一个东西。就怕SENDMAIL会给乱发邮件,但现在却会接收大量垃圾邮件。
      我还没用过域名邮箱,等有心情了再折腾。

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据