Windows Server SMTPfunction – 安装分支

背景 :我是一名SQL Server DBA。 我已经inheritance了大约50个SQL Server,并且需要设置各种维护计划和警报。 为了获得完整的好处,我还需要configuration数据库邮件,以便在作业失败,发生警报情况等时发送邮件。这需要SMTP服务器来中继电子邮件(希望我在那里有正确的措辞)。 由于每个SQL Server都在自己的域上,所以似乎必须安装SMTPfunction并在每个域上的服务器上进行configuration。 我想我会直接在每个SQL Server主机上执行此操作。

我按照本MSDN文章中的分步说明进行操作。 一切都有意义。 在避开了几个反病毒路障之后,我收到了电子邮件。

问题 :安装SMTPfunction有什么安全后果? 在我的概念validation中,我configuration了SMTP允许来自127.0.0.1的中继,而不是其他人。 这是否被认为是“安全”? 还有其他的事情我忽略了吗?

更新08/21/2014 :事实certificate我的公司已经可以访问Microsoft SMTP服务器。 据说,这是一项付费服务​​。 我从这个推断MS的SMTP服务器本身不是一个开放的中继。 我通过匿名身份validation连接到它,虽然我不知道MS知道发件人是他们付费客户之一(IP地址,也许?)。 所以到最后,我有一个单一的SMTP服务器,我不必维护它,我不必在无数的SQL Server上安装和configurationSMTPfunction。 谢谢各位的意见。

smtp有安全失败的长期历史(sendmail,emacs等)。 MS也是如此。 坦率地说,我会做的最后一件事是期望一台M​​S机器保持传入的smtp安全。 我们通常在任何提供邮件的Windows机器和互联网(例如FreeBSD,configuration了反垃圾邮件AV和简单转发的postfix)之间放置一个smtp代理。

话虽如此…

如果你的smtpconfiguration是“只发送”(即:随机的机器不能打开到端口25,587和/或465的连接),那么你真的没有打开自己太急剧的攻击。

任何MTA(不只是Windows)上最可能的失败模式是一个强制性的密码。 在这种情况下,有人试图猜测用户/密码对的networking端口。 您可以通过监视来自给定IP和/或子网的失败authentication的数量并相应地修改防火墙(通常在第二天到期的t时间内的x次authentication失败)来防御这一点(不容易在Windows中)。 您也可以订阅RBL(在Windows中不容易)请参阅: http : //en.wikipedia.org/wiki/Realtime_Blackhole_List 。 如果有太多的外出smtp连接(即你的smtp已经被入侵,机器已经成为垃圾喷泉,在奇数时间每分钟发送+100条消息),你也可以configuration你的防火墙或NMS,提醒pipe理员。 (用Windows也不容易。)

请注意,让垃圾邮件发送者猜测密码并将您的服务器变成垃圾邮件只是最可能的失败模式。 一个更丑陋的情况是,您将弱用户/密码对暴露给Internet,从而允许脚本 – kiddy利用授权进入您的服务器。 你需要一个严肃的密码策略。 您需要将任何此类即将到来的smtp放入networking中的隔离DMZ中。 你需要密切关注防火墙的exception情况(比如安装snort

我们遇到了类似的使用案例,因为有些应用程序不支持我们主要电子邮件系统所需的经过validation的SMTP。 我们通常会build议你有一台SMTP服务器,并且把所有的数据库服务器都指向那台服务器,只是为了简单起见。 但是,如果这是不可能的,你真的必须安装在每个数据库服务器上,请确保审查限制连接,你将有几个地方去做,这取决于你的networking。

从SMTP虚拟服务器开始,单击服务器的属性,然后访问。 你会看到一些选项,你正在寻找“连接控制”和“中继限制”。 将这些设置为需要访问的计算机的IP,如果您只有一台用于多个数据库服务器的SMTP服务器,或者将其设置为127.0.0.1或localhost,则您已经完成了限制,只限于安装在服务器上每个db服务器。

您还必须在Windows防火墙中允许您使用,以进一步限制访问权限。 在你的情况下,如果你不得不在每个数据库服务器上安装它,你可以阻止所有入站SMTPstream量,只允许出站。

这是一个稍微不同的方法:

为什么不在您的基础架构中设置单个实例,而不是在每个客户端基础架构中安装SMTP服务器实例? 然后,您可以为每个客户端configuration数据库邮件以通过SMTP服务器进行中继。 无论如何,每个客户端都需要允许出站SMTP,所以如果从SQL Server或SMTP服务器出站,那么它有什么关系?

您将减lesspipe理开销并可能通过仅保护一个SMTP实例来减less攻击面。

如果你失去了一个客户,或者他们把他们的业务转移到其他地方,那么重新configuration或禁用数据库邮件是一件简单的事。 在事件中重新configurationSMTP服务器也是一件简单的事情。