对两个虚拟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上,那么原理是相同的,只是具体的设置有些细微的不同,请自己体会和调整。 以上就是我的一点粗浅认识,如果能对大家有所帮助,不胜高兴。