如何保护黑客从SQL Server

我有一个问题,并不知道如何处理它。 我在Windows 2008 R2服务器上有一个SQL Server。 这个SQL Server 2005被用于从位于Internet上其他地方的另一个SQL Server接收数据库订阅。 我有通过防火墙打开的SQL服务器端口,但在范围内,我已经进入了其他SQL Server的IP。 这样做我希望通过该端口的连接请求不会到达SQL Server,除非这些请求来自其他SQL Server(其IP列在防火墙规则中的范围中)。 但是,当我看到日志时,有数以百计的“login失败的用户sa”条目(他们每过一秒钟都会到来)。 看来有些黑客正在蛮横猜测用户的sa密码。 但问题是,为什么Windows让这些请求到达SQL Server,即使它们不是来自防火墙范围中列出的IP地址? 什么是保护这个SQL Server的正确方法。 除了其他SQL Server的IP需要连接到此SQL Server之外,没有其他IP。

编辑 – 更多信息:

我在不同的机器上运行SQL Server端口上的telnet。 除非从防火墙范围内特别提到的机器运行,否则Telnet将失败。 所以看来,防火墙阻止的SQL Server端口罚款。 但是,那么为什么我看到这些失败的login请求从SQL Server日志中的不同IP地址用户“sa”? 黑客是否有可能通过端口80进入机器,然后以某种方式尝试连接到SQL Server? 80和443港口向所有人开放。 所有其他端口都closures,但sql服务器端口除外(只对一个特定的IP打开)。 Web服务器在端口80上没有任何东西可以导致访问者访问SQL服务器。 实际上,Web服务器中只有一个index.html(纯粹的HTML,没有连接到SQL)文件。 这只是一个testing服务器,可供将来使用。 只在SQL Server中testing数据。

编辑:

我打开了防火墙跟踪,以包括丢弃和成功的连接。 现在正在追查一切。 然后我去SQL Server日志,在那里我看到来自中国不同的IP地址的这些失败的login尝试。 但是在防火墙日志中没有这些IP地址的条目。 这怎么可能? 他们可以完全绕过防火墙到SQL服务器吗? 如果假设某些防火墙端口是可以打开的,则防火墙日志应该显示该IP地址的条目。 我完全失去了。

听起来像你的防火墙configuration不正确。 这是第一步。

通常我不会写一本我写的书,但在这种情况下,我会例外。 这就是所谓的保护SQL Server ,它会给你一个好的开始。

呃,真的 – 你不知道。 我不会使用afirewall等 – 一个SQL服务器没有权利在互联网上。 非常非常less数例外。

对于复制,build立一个适当的VPN。

除了正确configuration防火墙,以下是一些通用的build议,以防止暴力破解SQL Server的安全性:

  • 禁用“sa”帐户。 知道确切的login名将使攻击变得更容易

    ALTER LOGIN sa DISABLE 

另一种select是将“sa”帐户重命名为不太明显的名称

 ALTER LOGIN sa WITH NAME = SimonXZY 
  • 使用Windows身份validation代替混合模式身份validation。 Windows身份validation将强制执行Windows密码策略,并在连续尝试login失败时lockinglogin名
  • 审核失败login。 最简单的方法是将“服务器”属性中的“login审核”选项设置为“安全”选项卡,仅将“失败login”或“login失败”和login成功。 这不会帮助你防范暴力攻击,但会帮助你意识到这些攻击

更有用的build议在这里: 防止蛮力或字典的攻击:如何保持远离你的赃物歹徒