本文主要阐述
Qmail
邮件系统中如何进行反垃圾邮件配置,
m&
网理
$
业
~2
无
&6d
管
{!a
它包括两个方面:一个是不发送垃圾邮件;另外一个是不接收垃圾邮件。
一、
确认你的
qmail
服务器不是
OPEN-RELAY
状态
这一点非常的关键。如果你的
qmail
服务器现在是
OPEN-RELAY
状态的话,就是允许所有的人利用你的邮件服务器对外发送垃圾邮件,这样,你的服务器就成了一个制造垃圾邮件的源头了。
∶
―
(
如何来解决这个问题?
通过使用
ESMTP
协议的
SMTP
认证功能
(SMTP AUTH
)来控制发信者,只有通了认证的用户才可以通过服务器发送电子邮件。
Qmail
本身是没有
SMTP
认证功能的,但是可以使用
pacth
包对
Qmail
打补丁增加发信认证功能,重新编译生成
qmail-smtpd
程序,管理的
!9T#
垠
\y
管
就有了发信认证的功能了。可以从
这里
下载
qmail-smtpd
的
auth
补丁包。
[url]http://members.elysium.pl/brush/qmail-smtp-auth/dist/qmail-smtpd-auth-0.31.tar.gz[/url]
安装方法是:
1.
解开
tar.gz
的包
tar zxvf qmail-smtpd-auth-0.31.tar.gz
2.
进入解开的
qmail-smtpd-auth-0.31
目录
cd qmail-smtpd-auth-0.31
3.
将当前目录下的
base64.h
和
base64.c
文件拷贝到
qmail
的源码目录中
cp base64.* ../qmail-1.03
4.
返回上一级目录并应用
auth
补丁中的
path
cd ..
patch -d qmail-1.03 < qmail-smtpd-auth-0.31/auth.patch
5.
重新编译生成
qmail-smtpd
make qmail-smtpd
6.
将新生成的
qmail-smtpd
文件拷贝到
/var/qmail/bin
下,
d*Im
软育
9
软
B}RIgj
中
6
aW01$?g0@}%V%4_3
h1-
垠
*k
管业
oZ
替换掉原有的
qmail-smtpd
程序,替换之前最好对前的程序做一个备份。
cp qmail-smtpd /var/qmail/bin
这样你的
qmail
就有
SMTP
发信认证功能了。但是这样是不是就可以算是关闭
OPEN-RELAY
了?
不,
)
教
*z`p*lH~
还是要确认一下,你的
/etc/tcp.smtp
文件中的内容为
127.0.0.1:allow,RELAYCLIENT=""
并且成功生成了
tcp.smtp.cdb
文件,生成方法如下:
/usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
同时确认你的服务器启动脚本为
/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x \
/home/vpopmail/etc/tcp.smtp.cdb -u qmaild -g nofiles 0 smtp \
/var/qmail/bin/qmail-smtpd hostname /home/vpopmail/bin/vchkpw \
/bin/true 2>&1 | /var/qmail/bin/splogger smtpd 3 &
这样,你的
qmail
服务器就完全关闭了
OPEN-RELAY
。
二、
拒收垃圾邮件的发件人
如果邮件系统管理员在对日志进行统计分析,可以发现一些比较集中的收发件人的邮件地址,对于比较集中的发件人,我们可以根据他所发送到的邮件地址来判断,是否是垃圾邮件。如果收件人地址大量是不存在的地址,可以肯定,这是以用户名猜测方式来发送垃圾邮件的手段(这也是比较常见的垃圾邮件发送方式),需要对此发信地址进行拒收。或者是对同一个帐号发送大量的邮件,也需要对此发信地址进行拒收。
拒收的方法:
编辑
/var/qmail/control/badmailfrom
文件(如果没有可以新建一个)将要拒收的邮件地址写入,
3_Le
理
#8]IgSg
供业
]yw
同样也可以对一个域进行拒收,在
badmailfrom
文件中加入
@test.com
这样所有来自
test.com
的任何地址的电子邮件都会被服务器拒收。
三、
拒收垃圾邮件的发送
IP
如果利用一些工具来发送垃圾邮件,可以使发件人的邮件地址变成随机地址,可能发到你的服务器的每一封垃圾邮件的发件人地址都不一样,这样怎么办?拒收发件人的方法,就起不到应有的做用了。
我们可以通过查看邮件日志和网络的
SMTP
(
25
)端口的连接情况,找出发件数目比较高的
IP
和连接数比较高的
IP
,用防火墙来对这些
IP
进行拒收,从网络层就拒收这些垃圾邮件,同时也有相当高的效率。
如果是
Linux
系统就可以直接的用
ipchains
或
iptables
来拒收。
ipchains
拒收:
ipchains �CA INPUT �Cp tcp �Cs
你要拒收的IP �Cd 你的服务器IP 25 �Cj DENY
iptables
拒收
iptables �CA INPUT �Cp tcp �Cs
你要拒收的IP �Cd 你的服务器IP --dport 25 �Cj \ DROP
有关
Linux
防火墙的更多使用参考请访问
[url]http://www.netfilter.org[/url]
。
四、
正确的设置
.qmail-default
.qmail-default
文件在
/var/qmail/alias
目录下,相关的
.qmail-
文件是为了实现
qmail
的转发功能的,而
.qmail-default
是
qmail-local
进程找不到合适的转发规则时而要匹配的最后一个文件,如果是默认的设置,
qmail
会认为所有的
Mailbox
都是合法存在的。可以设置它的内容为
/home/vpopmail/bin/vdelivermail '' bounce-no-mailbox
这样不存在的邮箱都会
bounce
掉并且返回
no-mailbox
信息。
五、
使用第三方
RBL
RBL(Realtime Blackhole List)
是实时黑洞列表,是国际上比较流行的反垃圾邮件技术,可以采用
RBL
来使邮件服务器拒收在列表中已知的垃圾邮件发送服务器所发送的垃圾邮件。
你需要下载一下补丁程序来增加这个功能。
下载地址:
[url]http://cr.yp.to/software/rblsmtpd-0.70.tar.gz[/url]
Qmail
的
rblsmtpd
必须要和
ucspi-tcp
结合在一起使用。
rblsmtpd
的安装方法很简单。在解开的源码目录中
make
make setup check
注:在新版的
ucspi-tcp 0.88
里,
c
的
k$
育管
!n?:vw'
已经包含了
rblsmtpd
,直接安装
ucspi-tcp 0.88
就可以了。
安装完后修改你的
SMTP
启动脚本,加上
/usr/local/bin/rblsmtpd
。
/usr/local/bin/tcpserver -H -R -l 0 -t 1 -v -p -x \
/home/vpopmail/etc/tcp.smtp.cdb -u qmaild -g nofiles 0 \
smtp /usr/local/bin/rblsmtpd \
/var/qmail/bin/qmail-smtpd hostname \
/home/vpopmail/bin/vchkpw /bin/true 2>&1 | \
/var/qmail/bin/splogger smtpd 3 &
如果你想使用第三方的
RBL
列表,只要加上
-r
选项就可以了,比如:
-r blackholes.mail-abuse.org
第三方的
RBL
服务器请参阅本站的【
反垃圾邮件技术参考>>反垃圾邮件资源>>黑名单服务器
】,
}},5d^+q
件
!v.
_hz~[64
管
Hi
本站也即将推出自己的黑名单服务器。
六、
使用
Anti-Spam
软件
使用
Anti-Spam
软件来过滤,现在这项技术被越来越多的人认为是行之有效的。
有很多的
Anti-Spam
软件,其中一些
Anti-Spam
是结合
Procmail
来使用的(
Procmail
是一个非常优秀的
MDA
软件,
~o
络
x^o&(6dF,
无教络
r
件
Procmail
使用请参考
[url]http://www.procmail.org[/url]
)。
Spamassassin
[url]http://www.spamassassin.org[/url]
相当不错的
Anti-Spam
软件,
软
8uW['
软教
T
业
c#DbOm^
软
w
可以用在多个
UNIX
平台的
MTA
上。
spambouncer
[url]http://www.spambouncer.org[/url]
Kaspersky Anti-Spam
[url]http://www.Kaspersky.com[/url]
可以用在多种邮件
MTA
上,
Tg
网
ty8fn
育
V~'w
并且有邮件头的的检查。
七、
总结
垃圾邮件肯定是不能够完全制止的,但是我们采取上面的措施,肯定会制止住相当部分的垃圾邮件。这对于我们的邮件服务器的负载降低、带宽占有减少和工作效率提高都是很有意义的。