当前位置:操作系统 > 玩转网络 >>

OPEN RELAY的解决方案

答案:

 

  1. Exchange Server 5.5
  2. Netscape Messaging
  3. Sendmail
  4. 其它邮件服务器

Exchange Server 5.5

Exchane Server 是由微软公司开发的一套商业软件,在5.0 版本和以前版本可以relay任何邮件,没有解决办法。如果你使用的是5.5以前的版本,您需要升级到5.5版本。

从5.5 版本(Service Pack 2) 开始加入了控制 open relay 的功能。具体操作方法如下:

1>在下面的选项中选择第二个,即Reroute incoming SMTP mail (required for POP3/IMAP4 support)。

如果选择第一项,邮件服务器虽然不会relay任何邮件,但它使邮件服务器接受邮件并返回一个"无法递送(NDR)"的报告给发件人。这不仅加重了服务器的负担而且可能被人利用攻击另一台机器。

2>在上图的Routing 表中填入所服务的域。假设您的域为realdomain.com并且这个邮件服务器也为另外一个域vitualdomain.com 服务,选择Add, 填入两个域名,这是会出现下面的提示框:

通常选择第一项 Should be accepted as "inbound".

3>加入你允许接受relay 的域或IP. 在1>中的图文框中,单击"Routing Restrictions" 按钮,就会跳出下面的图文框:

选择第二项"Hosts and client with these IP addresses", 单击Add加入你允许relay 的IP即可。如果没有允许relay的IP,也需要选上此项,只是不加入任何IP即可。

[参考文件]
至于为什么这样设置以及更详细的解释,WindowsNT Magazine 在下面的链接踵提供了一个非常详细的文章http://www.exchangeadmin.com/Articles/Index.cfm?ArticleID=7696

 

Netscape

Netscape Messaging Server 从3.5版本开始加入了relay的控制功能。如果使用的是3.5以前的版本,需要更新到3.5或更新的版本。当前最新版本(2001-06)是4.15p6,可以在这里下载: http://www.iplanet.com/downloads/download/2082.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.(Solaris 系统可以从这里下载)编译、安装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 后才能生效。

[参考文件]
下面这些文章详细讲述了如何使用各种FEATURE配置Sendmail,以及如何设置filter等功能来防止垃圾邮件。

 


其它邮件服务器

如果您使用的邮件服务器没有在上面列出,下面的链接很可能有你使用的服务器的关闭OPEN RELAY 的方法。

http://mail-abuse.org/tsi/ar-fix.html

,

上一个:过滤垃圾邮件小窍门
下一个:三分钟打造反垃圾邮件服务器

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,