现在互联网垃圾信越来越多,如果设置好你的MailServer的安全设置是一个重要的问题。现在以最流行的MDaemon Mail Server为例,我们来讨论一下MDaemon的安全设置。
MDaemon的安全设置在Setup菜单下面的“Security Settings”。其中有以下几个选项:
-Address Suppression(地址抑制):列出不允许通过你的MailServer发信的地址。如果收到这个列表中的地址发来的邮件,可以选择接受并放到“坏信队列”,或者在SMTP的进程中拒绝而从不接收(甚至不储存在你Server的临时目录)。这个功能用来控制一些有问题的用户,例如总是恶性发大量邮件。这里支持通配符,例如"*@hotmail.com"和"baduser@"。可以设置所有域和某个域有效。
-IP Screening(IP掩蔽):给你希望允许或者禁止的Server指定IP地址。如果不允许连接,从列表的IP地址来的尝试连接将会被拒绝和马上取消。当你的机器具备多个IP地址,在这里设置很方便。支持设置"206.*.*.*"或者"206.101.*.130"。
-Host Screening(站点掩蔽):给你希望允许或者禁止的Server指定站点(域名)。和IP掩蔽一样,不过这个是让你指定站点名字。支持设置"*.sample.com"或者"sample.*"。
-IP Shielding(IP掩护盾):如果List中指定的域名尝试连接你的服务器,IP地址必须和你在这里的地址匹配。这里有另外一个选项:"给合法的本地用户的邮件例外"。例如总是很多用户使用"54fg56ff@yahoo.com"或者"tg7hj47r6@hotmail.com"等假的名字来发信给你的时候,你可以在这里设置yahoo.com和hotmail.com的真正IP地址匹配。但是互联网上的站点太多,有时实在设不及,还得和其他方法并用。
-SMTP Authentication(SMTP认证):当用户发信到MDaemon Server,如果没有先认证身份,用几种选项来指示MDaemon的行为。(MDaemon支持从Windows NT导入已经认证的用户)
1. Authenticated senders are valid regardless of the IP they are using
已认证的用户免除IP Shielding(IP掩护盾)限制,无论使用什么IP都可以。
2. Authenticated users are exempt from the POP before SMTP requirement
如果以下有使用"SMTP前先POP"的安全功能,这能使已认证的用户免除这个限制。
3. Authentication is always required when mail is from local aclearcase/" target="_blank" >ccounts
任何声称来自本地用户的信件都要求先被认证
4. MAIL FROM "Postmaster" requires an authenticated session
从"Postmaster"发来的信也需要一个认证的进程。发垃圾信的人和黑客知道有"Postmaster"的存在,他们可能通过这个帐号来向你的服务器发邮件。你可以选择这个设置以防止他们这么做。
5. Authentication credentials must match those of the email sender
认证证书必须和发信人拥有的匹配。这防止本地用户使用本系统其他用户地址发信。
6. Global AUTH password
使用通用的AUTH密码。如果使用了上面”已认证用户可以免除IP限制",MDaemon给动态NT认证的用户帐号配置必须使用这个通用的密码来代替他们的普通的NT密码。
-POP Before SMTP(SMTP前先POP):用于每个MDaemon用户先存取他的Mailbox,然后才允许通过MDaemon发信,这样就验证了用户有一个合法的用户帐号,允许使用这个Email系统。这个是减少非法用户使用你的Mail Server的最简单方便的方法,就是现在各大ISP常用的方法。但是同时要注意要求用户在客户端做相应的设置。
-Spam Blocker(拒绝垃圾信):允许指定几个ORDB和MAPS RBL类型的站点,每次当用户要发信到你的Server的时候,这些站点都会被检查。如果连接的IP地址是在站点黑名单中,这些信息就会被拒绝或者被做上标记。要注意的是有些站点是被错误地记录进黑名单的。
如果要查询垃圾信信息和如何使用ORDB或者MAPS RBL来控制和中止垃圾信,可以参考:http://www.ordb.org和http://www.mail-abuse.com/rbl/。
这个Spam Blocker有几个选项:
1. Flag messages from blacklisted sites but go ahead and accept them
设置这个,MDaemon将不会拒收来自黑名单站点的信件,但是这些信件会被加上一个"X-RBL-Warning"的告诫信头。你也可以使用内容过滤功能来搜索有这些信头的信件,而对这些信件做出相应的举动。MDaemon还会给每个用户自动建立一个"垃圾邮件"的IMAP目录,并生成相应的IMAP邮件规则,把它发现的有这些"X-RBL-Warning"信头的信件放到该目录下。虽然并不一定准确安全,但是这也是一个简单的方便帮助用户快速鉴别垃圾邮件。这样用户只需要不定期的检查这个"垃圾邮件"的目录,确认有些重要的信件没有意外的被放到该目录(有时会发生这种情况)。关于这个,大家可以参考一下的网页,他们就是这样做的。
2. Check "Received" headers within SMTP collected messages
检查SMTP收到的信件中标记在"Received"信头中的IP地址。这个对已经收到的信件的策略用处不大,如果上面已经设置了"SMTP之前先POP",这里就不需要了。
3. Check "Received" headers within POP collected messages
检查DomainPOP或者MultiPOP收到的信件中标记在"Received"信头中的IP地址。
4. Add blacklisted sites to the IP Screen(under All Domains)
把黑名单中的站点加到上面的IP Screen(IP掩蔽)功能里面(在所有域下面)。这个选项很重要,防止这些站点将来尝试连接你的服务器。自动把黑名单的站点加到IP Screen的文件大概是20KB(大概500个项),之后不会自动添加(可以手动)。这样防止IP Screen里面的地址太多尔影响了服务器的性能。
5. 其他几个选项讲的是几种例外情况,和上面的大同小异,这里就不多说了。
在Spam Blocker Hosts页中,你可以手动添加和删除站点列表。
在Spam Blocker Caching页中,你可以设置缓存阻挡垃圾信的查询。这里设置为自动即可。
-Relay Settings(转发设置):用来控制MDaemon当你的MailServer收到一封不是本地地址的来信如何处理。
1. This server does not relay mail for foreign domains
设置这个选项,MDaemon将拒绝接受FROM和TO都不包含本地用户的信件。就是说,不为外部邮件转信。
2. Refuse to accept mail for unknown local users
设置这个选项,MDaemon接受给本地未知用户的邮件。
3. Sender@#s address must be valid if it claims to be from a local domain
如果信件声称它是来自一个本地Domain,这个本地用户必须存在,否则MDaemon将拒绝发送这个信件。
4. Mail sent via authenticated SMTP sessions can always be relayed
通过已认证进程发出的信件总是被转发。
5. Mail can always be relayed through domain gateways
信件总是能通过域的网关转发,而不管转发控制如何。这个功能默认是禁止的,而且不推荐。
-Trusted Hosts(信任的站点):指定对Relay Settings中的Relay规则例外的域名或者IP地址。
-Trapit Settings(故意延时):Trapitting是指在SMTP处理时故意插入延时,来阻碍发送服务器不停地尝试发送。
-Reverse Lookup(反查询):MDaemon能查询DNS Server来检查来信的域名和IP地址的合法性。能用于拒绝可疑的信件或者在信头有一个特别的信头。DNS反查数据同样会记录在MDaemon日志文件中。
1. Perform reverse PTR record lookup on inbound SMTP connections
MDaemon会对所有进来的SMTP进程执行反标记记录查询。
2. ... send 501 and shutdown connection if no PTR record match
如果没有发现PTR记录,发送501错误代码,并中止连接。
3. Perform lookup on HELO/EHLO domain
HELO/EHLO是发信客户端用来确认它连接到Server的身份。设置这个选项,将对在进程中使用HELO/EHLO命令时报告的域名进行反查询。
4. Perform lookup on value passed in the MAIL command
设置这个选项,将对在进程中使用MAIL命令时报告的域名进行反查询。例如你可以在日志中看到"MAIL FROM "。这个时候就会对这个域名yahoo.com.cn进行反查询。而这个地址通常是信件的返回路径,也是信件的原始发起地址。但是要注意有时这里被错误的地址代替。
5. Refuse to accept mail if a lookup returns "domain not found"
如果反查询的结果是"没有找到该域名",设置这个选项就会拒收该信件,并给予451错误代码(请求的操作被中止),然后该进程会被允许正常执行。
6. ...send 501 error code (normally sends 451 error code)
设置这个选项,当出现上面的"没有找到该域名"错误,用501错误代码代替451错误代码。
7. ...and then shutdown the socket connection
设置这个选项,当出现上面的"没有找到该域名"错误,中止该连接。
8. Insert "X-Lookup-Warning" header into suspicious messages
如果反查询的时候发现是可疑的信件,给信件插入"X-Lookup-Warning"信头。
综上所述,大家可以看到,现在流行的邮件服务器已经可以使用多种手段来实现邮件安全和垃圾邮件问题。但是现实使用中我们还需要不断参考日志文件随时针对性地做出修改。例如163.com被国外组织认为是垃圾邮件服务器(确实很多垃圾邮件从那里发出),如果使用Spam Blocker,你就有可能不能收到从163.com发来的邮件。因此,具体情况就要给予具体设置。这个考虑在大家自己,就见仁见智了