【IT168 服务器学院】由于前面提到的历史的原因,最初的绝大多数邮件服务器都允许OPEN RELAY的。今天,大部分邮件服务器升级版本已经在缺省设置中关闭了OPEN RELAY, 如Sendmail 从8.9.3版本开始,Exchange Server从5.5版本开始关闭了open relay,。有的服务器虽然没有相应的升级版本,也都提供了关闭open relay 的方法,如在NOTES SERVER的配置文件notes.ini 中加入一行:SMTPMTA_REJECT_RELAYS=1。但由于很多服务器管理员的疏忽而没能及时的修补这些安全漏洞,被利用来转发垃圾邮件。
如何确认邮件服务器是否OPEN RELAY对于UNIX操作系统,假设要测试的邮件服务器是mail.ABC.com,则可以使用以下的命令进行测试:telnet mail.ABC.com 25
如果在最后显示“Relaying denied”,则表明该服务器已经安全设置,不会再relay无关邮件了。 如果在最后显示“Message accepted for delivery”,则表明服务器可以转发任何人的邮件。
其他系统可以通过观察计费器的动态记录或者邮件队列中的信息来判断。
除了用上面的命令行的方法测试外,还可以利用网上提供的一个测试工具来进行测试。首先链接到http://www.abuse.net/relay.html,找到Address to test:(as host name or dotted quad)栏,在其中输入你要测试的服务器IP地址或域名,它将会返回一些信息,根据返回的信息可以判断测试的服务器是否已经限制了第三方转发。
如果在测试结果页中出现如下的提示:
Relay test result
All tests performed, no relays accepted.
表明这台服务器已经限制了第三方转发。
如果某台服务器没有限制第三方转发,则测试显示信息如下:
Relay test result
Hmmn, at first glance, host appeared to accept a message for relay.
THIS MAY OR MAY NOT MEAN THAT IT''S AN OPEN RELAY.
通过测试,可以判断出你的服务器是否限制了RELAY功能,从而采取相应的措施进行处理。
常用邮件服务器关闭RELAY的方法
一般现在使用得最广的邮件服务器软件主要有以下几种:
Unix 操作系统:Netscape Messaging Server 和Sendmail
Windows 操作系统:Exchange Server 和Imail
下面分别具体说明如何对这四种邮件服务器软件进行设置,以关闭RELAY功能。
Netscape Messaging Server
Netscape Messaging Server 从3.5版本开始加入了relay的控制功能。如果使用的是3.5以前的版本,需要更新到3.5或更新的版本。当前最新版本(2002-01)是4.15p7,可以在这里下载:http://www.iplanet.com/downloads/download/5098.html。
Netscape Messaging Server 有两种方法可以用来控制open relay。一种是使用Anti-relay Filter,另一种是 Anti-relay Plug-In。后者的功能更强大些,但只支持4.x 版本;如果使用的是3.5版本,则需要使用前一种方法。
使用Anti-relay Filter:
找到filter.cfg 文件(4.0以上版本名字是UBEfilter.cfg),进行如下编辑。如果该服务器只负责 xyzcorp.com域收邮件:
Channel-To ".*@xyzcorp.com" EXIT
$ANY ".*" REJECT "We accept mail for XYZ Corporation only"
如果该服务器还负责转发来自123.45.67.* 邮件,那末就应该加入:
Host-From "123.45.67.*" EXIT
Channel-To ".*@xyzcorp.com" EXIT $ANY ".*" REJECT "We accept mail for XYZ Corporation only"
更详细的资料可以参考http://www.tsc.com/~bobp/nms-no-relay.html,该文详细讲述了怎样设置filter.cfg文件,甚至可以直接拷贝后,对其中的IP和域名稍作改动即可。
Sendmail
Sendmail 从8.9.3版本开始缺省设置禁止转发垃圾邮件,在此之前的版本在这方面都存在着严重的安全缺陷。因此,有必要把您的Sendmail 升级到 8.9.3 以上版本。考虑到其它方面的安全漏洞,我们建议您升级到当前最新版本,您可以在Sendmail的主页上 http://www.sendmail.org 查到最新的版本。
新安装的Sendmail 不会转发任何邮件,如果你的邮件服务器需要为某些用户提供转发服务,你需要对Sendmail的配置文件进行设置。设置方法有多种,比较简单的方法是在 /etc/mail/下生成一个名字为relay-domains 的文件,在该文件中列出需要relay的IP或域名。
Sendmail 8.9.3安装过程
译时需要gcc, groff, gmake, gm4编译、安装sendmail服务器
1) 设置环境:(保证您所用的是 groff, gmake.假设这些您都安装在 /usr/local/ 下) 。 % setenv PATH /usr/local/bin:$PATH %setenv GROFF_TMAC_PATH /usr/local/share/groff/tmac %setenv GROFF_FONT_PATH /usr/local/share/groff/font
2) 备份/usr/lib/sendmail 和 /etc/mail/sendmail.hf #cp /usr/lib/sendmail /usr/lib/sendmail.old #cp /etc/mail/sendmail.hf /etc/mail/sendmail.hf.old
3)安装 sendmail
download sendmail-8.9.3.tar.Z %zcat sendmail-8.9.3.tar.gz |tar xvf -%cd sendmail-8.9.3 %make 安装需要超级用户权限. #make install
4)生成 sendmail.cf
生成自己系统的mc文件: %cd sendmail-8.9.3/cf/cf %cp generic-solaris2.mc my-system.mc
按照您的需要改动my-system.mc, 加入您所需要的FEATURE. 例:
FEATURE(access_db, dbm -o /etc/mail/access)
生成并安装sendmail.cf文件,在sendmain-8.9.3/cf/cf目录下执行: (需要 gm4)
% m4 ../m4/cf.m4 my-system.mc>sendmail.cf
将sendmail.cf拷贝到/etc下或/etc/mail 下。
5)产生其他配置文件和启动:
(1)在/etc/mail下生成sendmail.cw文件记录该服务器的所有别名;
(2)在/etc/mail下生成relay-domains文件记录该服务器允许relay的域, 例:
ccert.edu.cn
202.116.34.1
202.112.33.
(3)%chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueque
(4)%chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
(5)初始化别名数据库%sendmail -v -bi.
如果没有Error,则启动sendmail进程: #/usr/lib/sendmail -bd -q1h
注意:
如果升级后Sendmail仍然使用旧的配置文件,可能会继续relay任何人的邮件,此时需要摒弃旧的配置文件,根据需要重新进行配置。配置文件修改后,必须重新启动Sendmail 后才能生效。
Exchange Server
exchange 5.5在SP2补丁以前的版本是不具备关闭open relay功能的。要关闭,则要先打SP2以上的补丁。
下面具体介绍使用方法:
(1)安装补丁SP3补丁
双击光盘目录中的EXCHSRVR55_SP3
EngServerSetupI386 Update.exe,安装补丁。
(2)启动Microsoft Exchange Administrator,查看Configuration下的Connections下是否有Internet Mail Service项(以下简称IMS),如果没有,可以通过选择File-New Other-IMS进行安装;
(3)双击Connections下的IMS,弹出IMS Properties对话框,点Routing选项卡,此页中使用缺省值即可(其中Sent to: 下为自己的域名,Route to:下为),(如果没有安装SP2以上补丁,则此页中不会出现Routing Restrictions按钮)。接着点Routing Restrictions按钮,弹出Routing Restrictions对话框,选择“Hosts and Clients that successfully authenticate”和“Hosts and clients with these IP addresses”,点旁边的Add按钮,增加本所的IP地址和掩码,设定一个网段,点OK即可。
(4)关闭IMS,再启动IMS,所做的修改即会产生作用。(双击控制面板中的服务,选择Microsoft Exchange IMS,点停止,即可关闭它,再点开始,又可以启动它。)
Imail
(1)下载
IMail可运行于NT/2K环境下,为共享软件。最新的Imail程序可以从以下地址:ftp://ftp7.ipswitch.com/ipswitch/product_downloads/ imtm_x86.exe(8.2M)下载。
(2)关闭OPEN Reply的设置
点开始-程序-IMail-Imail Administrator-localhost,选择SMTP Security中左侧的最后一项:Relay for local users only。
有关垃圾邮件处理的更详细的情况,请查阅中国教育和科研网垃圾邮件处理小组网页:http://www.ccert.edu.cn/spam/spam_home.htm。
邮件客户端设置
这样设置了以后,可能你的局域网的用户就只能收邮件,不能发送邮件了。发送邮件时提示如下信息:The server say: 550 Relaying is prohibited. 邮件发送不出去。这时候就要在邮件客户端设置SMTP身份验证,具体方法如下:
(1)对于使用outlook express的用户
启动outlook express,点“工具”-“帐号”,点“邮件”选项卡,选择某个邮件帐号,点“属性”,点“服务器”选项卡,选中 “我的服务器要求身份验证”,点“确定”,点“关闭”。
(2)对于使用foxmail3.11的用户
启动foxmail,选择某个帐户,点“帐户”-“属性”,点“邮件服务器”,选择“SMTP服务器需要身份验证”,点设置,选择“使用与POP3服务器相同的信息”,点“确定”。