[指导]限制垃圾邮件 让邮件服务器减负
2005-6-11 17:21:00 文/ 出处:邮件技术资讯网
二、邮件地址或域名过滤。
虽然采用SMTP认证可以阻止别人利用你的服务器发送大量垃圾邮件,但阻止不了接受垃圾邮件,但我们可以采用邮件地址或域名过滤的方法阻止垃圾邮件,如果使用的邮件服务器是sendmail,可以采用以下步骤:
首先定位sendmail.cf文件,默认的存放位置是/etc/mail
拷贝sendmail.cf到一个安全目录。
在/etc/mail目录下创建以下文件。
Spammers.txt,该文件是被你服务器所拒绝的邮箱地址列表。
Spamdomain.txt,所拒绝的主机或域名列表。
Relaydomain.txt,允许可以转发信的主机或域名列表(除此之外的拒绝)。
How to edit sendmail.cf
下来就该配置sendmail.cf,要将过滤域名与邮箱的代码信息插入到sendmail.cf 中,而且必须插入到准确的位置,如果插入位置错误,邮件服务会异常或忽略此段设置。插入位置如下所示:
### Ruleset 0 -- Parse Address ###
######################################
Sparse=0
R$* $: $>Parse0 $1 initial parsing
R<@> $#local $: <@> special case error msgs
R$* $: $>ParseLocal $1 handle local hacks
R$* $: $>Parse1 $1 final parsing
#
# Parse0 -- do initial syntax checking and eliminate local addresses.
# This should either return with the (possibly modified) input
# or return with a #error mailer. It should not return with a
# #mailer other than the #error mailer.
#
SParse0
R<@> $@ <@> special case error msgs
从该位置开始插入过滤信息的代码
过滤邮箱地址和站点
将以下的代码插入到sendmail.cf的特定位置,这些配置代码就开启了sendmail服务器过滤的功能。
#####################################################################
# Ruleset check_mail - Stop Spammers (see http://www.vix.com/spam/) #
#####################################################################
# spam site list files
F{SpamDomains} /etc/mail/spamdomains.txt
F{Spammers} /etc/mail/spammers.txt
Scheck_mail
R<$={Spammers}> $#error $@ 4.7.1 $: "471 We don't accept junk mail"
R$={Spammers} $#error $@ 4.7.1 $: "471 We don't accept junk mail"
R$* $: $>3 $1
R$*<@$*$={SpamDomains}.>$* $#error $@ 4.7.1 $: "471 We don't accept junk mail from your domain"
R$*<@$*$={SpamDomains}>$* $#error $@ 4.7.1 $: "471 We don't accept junk mail from your domain"
R$* $@ ok
R$* $#error $@ 4.1.8 $: "418 can't resolve your name, check your DNS"
Spammers.txt文件由邮箱地址组成,格式如下:
company1@spamsite.com
company2@spamsite.com
这种方法只是滤掉了特定的邮箱地址,当然了不能完全遏止住垃圾邮件,因为重新创建新的邮箱地址及其容易。
在spamdomain.txt中,列举的是主机的ip地址或域名,格式如下:
spammer.spamsite1.com
spamsite2.com
拒绝整个域的邮件产生的威力远大于对单个邮件的拒绝,但是会有一个弊端,可能会拒绝了一个合法的邮件,如果你接到合法用户的投诉,抱怨他不能向你的域发信,那么你只能告诉他,他们的服务器允许大量的垃圾邮件转发,只能建议他,向他们的系统管理员提出这点,并尽快能改正这一做法。记住,每次sendmail.cf文件的更改必须重新启动sendmail服务才可能生效。
Qmail邮件服务器由于其安全、可靠、高效、简单,越来越受用户的喜欢,所以它的应用也越来越广泛。在/var/qmail/control(Qmail默认安装目录)下建立badmailfrom文件,将要拒收的邮箱地址写入,每条记录为一行,如:333@spam.com,这样所有来自333@spam.com的邮件都会被服务器拒收。可以采用软件加入拒收的ip地址,如果操作系统是linux ,还可以采用ipchain或iptables 来拒收。
Ipchain拒收:
Ipchain -A INPUT -p tcp -s 服务器要拒收的ip地址 -d服务器地址 25 -j DENY
Iptables 拒收:
Iptables -A INPUT -p tcp -s 服务器要拒收的ip地址 -d服务器地址 -dport 25 -j \DROP
不管是sendmail或qmail 都可以采用第三方的实时黑洞列表。国际上的反垃圾邮件组织(如MAPS、ORBS、SpamCop等)都提供IP地址数据库(或黑名单),其中以RBL(Realtime Blackhole List)形式最为常见。垃圾邮件地址黑名单以DNS记录的形式存储在DNS服务器中,可以配置邮件服务器订阅RBL的黑名单,邮件服务器在收到SMTP的请求后用源发的IP地址实时检索RBL,如果该IP地址在RBL黑名单中则拒绝接收。