摘要:本文讨论了在qmail环境下如何防止mail relay被垃圾邮件发送者滥用的解决方法
。
软件环境:redhat6.2 qmail1.3
硬件环境:HP Netserver E60 128M内存 单网卡
一.什么是mail relay及为何要防止被滥用?
设置好一个qmail
服务器以后
,该
服务器将具有一个或若干个域名(这些域名应该出现在local或viritualdomai文件内)
,这时qmail-smtpd将监听25号端口,等待远程的发送邮件的请求
。网络上其他的mail服务器或者请求发送邮件的MUA(Mail User Agent,如outlook expre、foxmail等等)会连接qmail服务器的25号端口,请求发送邮件,SMTP会话过程一般是从远程标识自己的身份开始,过程如下:
HELO remote.system.domaiame
250 qmailserver.domain
MAIL FROM:user@*****.net
250 OK
RCPT TO: user1@elsewhere.net
邮件的接收者user1@elsewhere.net中的域名并不一定是本地域名,这时候本地系统可能有两种回答,接受它:
250 OK
或者拒绝接受它:
553 sorry,.that domain is not in my domain list of allowed recphosts
第一种情况下,本地qmail服务器是允许relay的,它接收并同意传递一个目的地址不是本地的邮件;而第二种情况则不接收非本地邮件。
qmail有一个名为rcpthosts(该文件名源于RCPT TO命令)的配置文件,其决定了是否接受一个邮件。只有当一个RCPT TO命令中的接收者地址的域名存在于rcpthosts文件中时,才接受该邮件,否则就拒绝该邮件。若该文件不存在,则所有的邮件将被接受。当一个邮件服务器不管邮件接收者和邮件接收者是谁,而是对所有邮件进行转发(relay),则该邮件服务器就被称为开放转发(open relay)的。当qmail服务器没有rcpthosts时,其是开放转发的。
如果系统管理员将自己的邮件服务器设置为open relay,将会导致一些垃圾邮件发送者将你的邮件服务器作为转发自圾邮件的中继站,这将使垃圾邮件的接收者将矛头对准你,可能会导致报复性的邮件炸弹;垃圾邮件还能消耗你大量的资源,占用你的带宽。更为糟糕的事情可能是你的名字可能会上了黑名单,成为其他邮件接收者共同抵制的目标,你的邮件将被这些接收者所拒绝。