OPEN RELAY 的原理及测试

时间: 2012-05-13 / 分类: 邮件服务器 / 浏览次数: 15,583 / 2个评论 发表评论

1.OPEN RELAY 的原理

由于技术的原因,在80年代前,网络还不是很健全,机器之间很少能直接对话发送邮件,人们必须得找出一条有效的连接通路来,然后信件沿着通路一步一步传送到目的地。SMTP协议中就明确指出当邮件在不同的网络间传送时,需要借助中间服务器的RELAY。

邮件在收件方和发件方之间会经过毫不相干的第三方服务器,这就是邮件转发 (RELAY)。 如下图所示:

 

图中的 MAIL SERVER 是可以对要求转发的邮件进行限制的,如只转发来自某个域的邮件或来自于某些IP 得邮件。如果转发没有任何限制,就被称为
OPEN RELAY 或 THIRD PARTY RELAY。

从历史上看,relay 曾经发挥过重要作用。而且当时这些工作主要靠手工来做,就像我们今天通过邮局发一封信一样。假如我想从沈阳发一封信件到深圳,我再信封上写好收信地址深圳,邮局就需要找到定义的运送路线:
沈阳,北京,郑州,长沙,广州,深圳。甚至还要长一些。其中很重要一点是每一个中继站都能很好的理解这封信将被送到哪里,下一个接收站是谁。在电子邮件里,这就相当于每个中继服务器清楚下一个服务起是谁,这就是邮件的转发。

目前,正常邮件转发已经不再必要,相反,无限制转发常常被发送垃圾邮件的人利用,隐藏真实的邮件来源,让别人以为是从另外的ISP 发出的信件;同时,也把大量的处理工作转移到别人机器上。

由于前面提到的历史的原因,最初的绝大多数邮件服务器都允许OPEN RELAY的。今天,大部分邮件服务器升级版本已经在缺省设置中关闭了OPEN
RELAY, 如Sendmail 从8.9.3版本开始,Exchange Server从5.5版本开始关闭了open relay。有的服务器虽然没有相应的升级版本,也都提供了关闭open
relay 的方法,如在NOTES SERVER的配置文件notes.ini 中加入一行:SMTPMTA_REJECT_RELAYS=1。但由于很多服务器管理员的疏忽而没能及时的修补这些安全漏洞,被利用来转发垃圾邮件。

2 如何确认邮件服务器是否RELAY

假设要测试的IP是202.112.0.0. 可以使用下列命令进行测试,文中的绿色斜题字为测试邮件服务器的反馈信息:

#telnet 202.112.0.0 25

Trying 202.112.0.0…

Connected to 202.112.0.0.

Escape character is ‘^]’.

220 dns.ccert.edu.cn ESMTP Sendmail 8.11.1/8.11.1; Sat, 30 Jun 2001
21:07:10 +0800

helo mydomain

250 dns.ccert.edu.cn Hello point.ccert.edu.cn [202.112.50.3], pleased
to meet you

mail from:nobody@yahoo.com

250 2.1.0 nobody@#yahoo.com… Sender ok

rcpt to:nobody@hotmail.com

550 5.7.1 nobody@hotmail.com… Relaying denied

最后的Relaying denied 表明该服务器已经安全设置,不会再relay无关邮件了。如果显示的结果是下面的样子,这表明服务器可以转发任何人的邮件。

rcpt to:nobody@hotmail.com

250 nobody@hotmail.com… Recipient ok

data

354 Enter mail, end with “.” on a line by itself

this is a test of the relay

.

250 VAA00289 Message accepted for delivery

除了用上面的命令行的方法测试外,下面的链接提供了一个测试工具,只需输入IP即可。 http://www.abuse.net/relay.html

2个评论

  1. 大概是个博客
    2012/11/28 09:18:02

    @十年灯,好吧,满足你的愿望,一会就变掉

  2. 十年灯
    2012/11/22 16:49:07

    蓝色背景看得我好累啊哥!~

发表评论

您的昵称 *

您的邮箱 *

您的网站