如何保护SQL Server免受黑客攻击


9

我遇到了一个问题,无法弄清楚如何处理。我在Windows 2008 R2服务器上有一个SQL Server。此SQL Server 2005用于从Internet上其他位置的另一个SQL Server接收数据库订阅。我已经通过防火墙打开了sql server端口,但是在范围内,我输入了其他SQL Server的IP。这样做是希望通过该端口的连接请求不会到达SQL Server,除非该请求来自其他SQL Server(其IP在防火墙规则的作用域中列出)。但是,当我看到日志时,有数百个“登录失败的用户sa”条目(并且它们每秒钟传来一次)。看来有些黑客正试图用蛮力猜测用户的密码。但是问题是,为什么Windows允许这些请求到达SQL Server,即使它们不是来自防火墙作用域中列出的IP地址也是如此?什么是保护此SQL Server的正确方法。除了其他SQL Server的IP,没有其他IP需要连接到该sql服务器。

编辑-更多信息:

我在不同机器上的sql服务器端口上运行了telnet。Telnet失败,除非从防火墙范围中特别提到的计算机运行。因此,看来防火墙阻止了sql server端口正常。但是,为什么我会从SQL Server日志中的不同IP地址看到对用户“ sa”的失败登录请求?黑客是否有可能通过端口80进入计算机,然后以某种方式尝试连接到sql server?端口80和443向所有人开放。除sql server端口(仅对一个特定IP打开)以外,所有其他端口均关闭。Web服务器上端口80上没有任何运行的程序可能会导致访客访问SQL Server。实际上,Web服务器中只有一个index.html(与SQL无连接的纯HTML)文件。这只是正在设置供将来使用的测试服务器。仅在SQL Server中测试数据。

编辑:

我启用了防火墙跟踪,以同时包括丢弃连接和成功连接。现在它正在跟踪所有内容。然后,转到SQL Server日志,在其中可以看到来自中国不同IP地址的这些失败的登录尝试。但是,防火墙日志中没有这些IP地址的条目。这怎么可能?他们可以完全绕过防火墙到达SQL Server吗?如果假设某些防火墙端口已打开,可以通过它们进入,则防火墙日志应显示该IP地址的条目。我完全不知所措。


如何使用登录触发器?另外,SQL Server不应暴露于Internet(面向公众)。另外,您可以使用Windows防火墙中的“程序规则”来限制IP地址的范围。
Kin Shah

是的,我可以,但是从根本上讲,这与SQL Server无关。我试图找出为什么Windows防火墙没有按照其预期的方式运行,即不让这些请求通过,因为它们不是来自唯一允许的IP地址。

1
是的,听起来您的Windows防火墙配置错误。也许您有另一个更通用的规则,即允许端口1433(或允许所有内容),或者在面向Internet的NIC上禁用Windows防火墙。不看配置就很难说。但这确实像Max所说的那样是ServerFault的一个问题。您是说Windows 2008 R2吗?“ RC”是发行候选版,用于测试的预发行软件。
James L


1
您是否真的在使用旧版本的候选操作系统?首先解决该问题。
迈克尔·汉普顿

Answers:


12

听起来防火墙配置不正确。这是第一步。

通常,我不会p书我写的书,但是在这种情况下,我会例外。这称为保护SQL Server安全,它将为您提供一个良好的开端。


好吧,您的书正好适合这个问题:-)
mfinni 2013年

凉!对于面向Internet的服务器,是否使用有关证书而不是本地/ Windows身份验证的说明性指南?;-)
Greg Askew 2013年

查看我的修改。防火墙似乎工作正常。这些中国黑客为获取SQL Server而玩的另一招。
艾伦·金

1
如果有人从公共IP地址连接到SQL端口,则说明防火墙配置不正确。如果它们来自内部IP,那么您还会遇到其他问题。SQL本身不支持证书。您必须通过AD和证书映射来执行此操作。
mrdenny

回到图纸的确是防火墙。在您解决防火墙问题之前,我将把SQL Server从互联网上撤下。这样,您就可以相对轻松地IP禁止整个IP地址范围。
Techie Joe

4

简单地说-您不会。我不会使用防火墙等。-SQL Server无权连接到Internet。很少有例外。

为了进行复制,请设置适当的VPN。


我有点困惑。如果数据库服务器不在Internet上,Web App后端服务器将如何到达数据库服务器?
艾伦·金

通过内部网络。基本设置。该网络应用程序位于两个网络中。
TomTom 2013年

3

除了正确配置防火墙之外,以下是一些一般建议,以确保SQL Server免受暴力攻击:

  • 禁用“ sa”帐户。知道确切的登录名将使攻击更加容易

    ALTER LOGIN sa DISABLE
    

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

ALTER LOGIN sa WITH NAME = SimonXZY
  • 使用Windows身份验证而不是混合模式身份验证。Windows身份验证强制实施Windows密码策略,并在连续失败的登录尝试的情况下锁定登录
  • 审核登录失败。最简单的方法是将“服务器”属性的“安全性”选项卡中的“登录审核”选项设置为“仅失败的登录”或“失败和成功的登录”。这不会帮助您防御暴力攻击,但可以帮助您了解攻击

此处提供更多有用的建议: 防止暴力破解或字典攻击:如何防止暴力破解战利品

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.