可能的攻击我的SQL服务器?

检查我的SQL Server日志我看到几个这样的条目:

Date: 08-11-2011 11:40:42 Source: Logon Message: Login failed for user 'sa'. Reason: Password did not match for the login provided. [CLIENT: 56.60.156.50] Date: 08-11-2011 11:40:42 Source: Logon Message: Error: 18456. Severity: 14. State: 8. Date: 08-11-2011 11:40:41 Source: Logon Message: Login failed for user 'sa'. Reason: Password did not match for the login provided. [CLIENT: 56.60.156.50] Date: 08-11-2011 11:40:41 Source: Logon Message: Error: 18456. Severity: 14. State: 8. 

等等..这是一个可能的攻击我的SQL Server从中国???! 我查了一下IP地址,在ip-lookup.net上说这是中文。

那该怎么办? – 阻止防火墙的IP地址? – 删除用户sa?

而且我如何保护我的networking服务器最好? 🙂

提前致谢!

它看起来像一个廉价的蛮力攻击。

事实上,整个互联网可以尽可能地尝试对您的SQL Server进行身份validation可能是一个巨大的问题。 除非您有特殊的原因,否则对SQL的访问应该只限于那些需要访问资源的服务器。

另外,不要阻止特定的IP地址,否则你永远不会停下来。 阻止授权位置以外的所有内容 除非你确定你不需要它们,否则不要删除你的用户帐户。

你能解释一下你的布局好一点吗?

你是否允许来自互联网的SQLlogin,或任何types的SQLstream量呢? 如果是这样,为什么?

你应该严格限制任何连接到你的SQL服务器的连接到你的本地networking或特定的外部IP(尽pipe如果你有这个需要,我会build议更安全的东西)。

我的解决scheme是让你看看你的防火墙并locking它,这样就可以允许最低限度的访问来提供服务可用性。

对于任何想要创buildIPSEC策略,filter等的程序,自动扫描事件日志并将IP添加到阻止列表中,我写了一个小程序。

作为虚拟主机提供商,我的客户需要外部访问我的SQL Server实例。 我也有问题,我的事件日志将充满成千上万的黑客试图login到我的MSSQL实例与'萨'login条目。 经过多次search,我决定编写我自己的程序,让它创build必要的IPSEC项目,然后每60秒扫描一次事件日志,以查找来自新IP地址的攻击。 然后,它将IP地址添加到IPSECfilter,并阻止所有来往于IP的stream量。 我只在Windows Server 2008上testing过,但相信它也可以在其他版本上运行。 作为附注,您可能需要使用pipe理员权限运行它,以便具有访问事件日志和创buildIPSec策略和filter的正确权限。

随意使用下面的链接下载程序。 通过任务pipe理器图标的右键菜单中的链接总是赞赏捐赠。

http://www.cgdesign.net/programs/AutoBlockIp.zip

请注意,这只适用于使用'sa'login的SQLlogin尝试,但是我可以修改它以适用于其他日志事件。 此外,您可以查看已被阻止的IP,但由于该程序每60秒运行一次,因此您将继续在事件日志中看到一些项目。 这是由于无法删除单个事件日志条目,我不认为删除整个日志将是一个好主意。 因此,您需要手动清除日志。 如果需要,我确实有一个版本,可以在5000个条目后存档日志文件,然后清除它。 我发现这有助于CPU利用率,因为应用程序不必在每次运行时都处理相同的事件日志条目。

免责声明 – 通过下载和安装上述程序,您同意对因使用上述软件而导致的任何损坏,数据丢失,损坏或任何其他function性问题,不承担任何责任。 我已经尽最大努力testing了这个程序,目前它已经在两台服务器上运行了,但是您已经被警告过使用,风险自负。

使用SQL事件探查器来查看对SQL服务器的login请求。 您可能会发现它是一个内部IP地址和尝试访问SQL Server的应用程序的名称。

如果是外部IP地址,那么为什么? 为什么你直接暴露一个SQL服务器到公共互联网stream量。 如果你不知道,那么你将不得不找出!

还要确保sa密码实际上非常强大。 在我的SQL Server上,sa密码实际上是一个非常长的垃圾,随机创build一次使用并丢弃密码。