我有一个问题,并不知道如何处理它。 我在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
更有用的build议在这里: 防止蛮力或字典的攻击:如何保持远离你的赃物歹徒