随机 IP 不断尝试连接到 SQL Server

随机 IP 不断尝试连接到 SQL Server

我们正在构建一个基于云的应用程序,它依赖于登录数据库以及许多单独的客户端数据库。我们使用 rackspace 设置了一个带有 SQL Management Studio 2012 (Web) 的服务器 (windows server 2012),并且正在进行发布前的测试/QA 程序。

使用服务器事件查看器查找一些调试信息,我注意到每隔一分钟左右就会有几个 IP 尝试与我们的 SQL 数据库建立连接。我们使用默认的“sa”用户作为超级用户。

我的问题是:

  • 在以某种方式对某个 IP 实施‘禁令’之前,我们能否为其设置最大请求数量?

  • 将用户帐户名更改为随机名称有帮助吗?

  • 我们还可以采取其他措施来保护我们的数据库吗?

答案1

正如其他人提到的那样,您的安全结构非常错误……话虽如此,这里有一些最佳实践可供参考……另请参阅下面的完整文章链接。我建议从头开始重新考虑您的结构和安全方法。

http://www.serverwatch.com/tutorials/article.php/3554051/Lock-Down-IIS-and-SQL-Server.htm

基本 SQL Server 安全检查表

为 SA 帐户设置密码并限制其使用。此外,定期更改密码以防止其“传播”并被开发人员或太多管理员使用。如果知道 SA 密码的人离开公司,请更改 SA 密码。使用 eEye 的工具扫描您的网络以查找没有 SA 密码的 SQL 服务器。

将您的 SQL Server 置于防火墙后面,与 IIS 或 Web 服务器分开。仅允许从指定的 Web 服务器连接到 SQL Server。您的 SQL Server 永远不应面向 Internet 或公开访问。

从 sysadmin 角色中删除 BUILTIN/Administrators,并将 SQL 中的 sysadmin 权限授予需要它的特定域帐户。

如果可能,请使用 Windows 身份验证和仅 Windows 模式。这样,潜在的黑客必须首先对域进行身份验证,而不仅仅是对 SQL Server 进行身份验证。

不要在域控制器上运行 SQL Server。

将 SQL Server 服务启动帐户更改为 LocalHost 以外的其他帐户。

启用“登录失败”选项(服务器属性 | 安全选项卡),以便您可以查找失败的登录,以查看是否有未经授权的人试图访问服务器。监控 SQL 日志,并使用 NETSEND 或电子邮件在 SQL 中设置警报(如果可能)。

及时更新操作系统和 SQL 的补丁和服务包。请参阅 IIS 安全工具以了解一些选项。

保护任何扩展存储过程。通过存储过程控制所有数据访问并授予这些访问权,而不是授予对数据本身的全面 db_datareader 和 db_datawriter 权限。有关更多信息,请参阅本文的第一部分。

更改服务器网络配置实用程序下的标准 SQL Server 端口并阻止默认端口 1433。让您的网络管理员允许使用新端口。

确保 Everyone 组对 SQL Server 注册表项没有写权限

答案2

你应该真的将 SQL Server 从 Internet 上移除,并设置防火墙,以防止外部访问。然后,使用 VPN 连接每个客户端站点。是的,这不是最简单的设置,但它是全天候阻止随机连接尝试的唯一方法。此外,随着越来越多的探测器发现您的 SQL 实例向外界开放,“攻击”的速度往往会加快。

需要从安全角度来审视所做工作的实施。此外,这是对 SQL Server 本身的访问;SSMS 只是向它发送 SQL 指令,以便您能够管理它。

答案3

首先,正如其他人指出的那样,您不应该使用 SA。

其次,出于您已经看到的原因,该服务器不应暴露在互联网上。Nathan C 说:设置 VPN。

最后,除非您专门为 SQL 配置了证书,否则流量默认未加密,并且容易受到嗅探。(不是用户名/密码,而是您的实际数据。)

认真地说,这几乎肯定违反了 PCI。请关闭防火墙。

答案4

我将在防火墙中阻止外部 IP 的 TCP 端口 1433(SQL Management Studio 使用的端口),并且只允许本地主机或一组受信任的 IP。

相关内容