|
| 两个虚拟smtp服务器防止垃圾邮件中转 |
| 来源:网络 时间:2006-2-22 |
|
对两个虚拟smtp服务器防止垃圾邮件中转的总结:
在论坛上看到了很多高手的发言,结合自己在实践中的体会,终于有了一些比较成型的经验:
首先要说的是,想要彻底防止垃圾邮件制造者利用你的exchange 服务器进行中转,以及其他非法利用你的smtp服务的现象,两个虚拟smtp服务器是必不可少的。 这看起来是很基础的结论,却是我的“血泪”之言。因为我以前一直依靠一个虚拟服务器和一个smtp连接器,进行smtp限制,并且一直自信很有成效,结果前些日子被isp警告:我的服务器成为垃圾邮件中转服务器! 现在具体说说我之前的设置,供大家对照。如果你的设置和我相同,请务必当心!那一点也不安全!
我以前的设置:default virtual smtp server上,启用三种认证模式(匿名、基本和集成),允许所有通过认证的计算机进行relay;然后建一个smtp connector,在delivery restrictions当中,选择 by default, messages from everyone are rejected,然后将所有合法的用户,添加到后面的允许列表中。 我原先以为,有了这个smtp connector,那么只有合法的用户才能将邮件发送出去,而所有其他用户的信息,将被截留。可事实证明,垃圾邮件制造者仍然成功的利用我的服务器中转了邮件。也就是说,虚拟smtp服务器的relay可以突破这个smtp connector中的delivery restriction限制。
于是,我参考了一些帖子和微软的kb,总结出以下方法,实践中证明是有效的:
第一步,在你的exchange 服务器上,安装两块网卡;
第二步,设置网卡。一块网卡是接收内部用户smtp请求的,称为内部nic,一块网卡是接收外部用户smtp请求的,称为外部nic。每块网卡,各绑定一个固定ip(两块网卡均为内部虚拟ip即可,不必是一个外部ip,一个内部ip。因为我的内部网络是处于isa server之后的,所以只能是两个内部虚拟ip)
第三步,设置exchange 服务,让它区分内外网卡。因为我是利用isa server发布exchange服务器,包括pop3、smtp、imap4、nntp等等,所以,我把除smtp以外的服务,均绑定到外部nic的ip上。
第四步,建立两个虚拟smtp 服务器,一个绑定到外部nic的ip地址,简称为smtp1;一个绑定到内部nic的ip地址,简称为smtp2。smtp1(绑定到外部nic的虚拟smtp服务器),启用三种认证方式(匿名、基本和集成),但不启用relay(也就是在relay中选择“only the list below”,但不加入任何列表。下面的“all computers...”也不选),并且不启用外部dns服务器;smtp2(绑定到内部nic的虚拟smtp服务器),只启用基本和集成两种认证方式,然后启用relay,并且启用外部dns服务器(方法是到delivery --> advanced --> configure当中,选择外部的dns服务器)。
第五步,建立一个smtp connector,连接到smtp2(也就是绑定到内部nic的虚拟smtp服务器),然后进行必要的设置(一般是增加一个address space,也就是添加一个smtp空间*,并且建议按照以前的介绍,设置delivery restrictions,选择 by default, messages from everyone are rejected,然后将所有合法的用户,添加到后面的允许列表中。这样也是为了增加安全性。) 好了,现在可以到isa server中,发布你的exchange 服务器了。注意发布的时候,内网ip要选择 exchange服务器上的那个外部nic的ip地址,而千万不要指到那个内部nic的ip上去,否则上面的辛苦工作,等于白费。
让我们来大致看一下邮件的流程:
来自外网的邮件,是由smtp1来监听的(因为它绑定到了外部nic的ip上)。如果是发给内网用户的,那么它查询ad,然后将邮件送达;如果不是发给内网用户,而是企图利用 exchange的smtp服务,进行转发,那么对不起,smtp1上不启用relay服务,无法转发。再说,它也没有启用外部的dns服务器,根本无法解析外网的域名。
来自内网用户的邮件,是由smtp2来监听的(因为它绑定到了内部nic的ip上)。如果是发给内网用户自己的,那么仍然是直接查询ad,然后将邮件送达;如果是发到外网的,那么smtp2启用了外网dns服务器,所以可以顺利的解析到外网域名,然后通过连接到smtp2的smtp connector,将邮件relay到外网。 那么,你的合法用户,如何使用呢?
如果用户在内部网络中使用,那么他可以使用 outlook express或者foxmail等pop3邮件程序,进行收发邮件(注意pop3服务器要设置为外部nic的ip,smtp服务器要设置为内部nic的ip,分别对应exchange 服务器的设置); 如果用户是在外网中使用,那么他只能使用 outlook express或者foxmail等pop3邮件程序,进行邮件的接收,但不能用它们发送邮件。原因很简单,监听外网smtp请求的那个虚拟smtp服务器smtp1,不支持relay。不过,这时候就可以请出著名的owa了。用户可以利用浏览器,通过owa的方式,发送邮件。
另外,如果你不是通过isa server发布exchange服务器,而是直接将exchange服务器发布在internet上,那么原理是相同的,只是具体的设置有些细微的不同,请自己体会和调整。 以上就是我的一点粗浅认识,如果能对大家有所帮助,不胜高兴。
|
|
|
|
|