我有一个专用虚拟服务器和一个 VPS(来自 Fasthosts)虚拟服务器 - 我在这些服务器上运行的网站/应用程序访问存储在同一 Web 服务器上的 Sql Server。
到目前为止,我已经从 Sql Server Management Studio 登录到专用服务器和 VPS 服务器上的 Sql Server - 直到我注意到在我的服务器应用程序日志中,多次尝试使用“sa”用户名登录 Sql Server,但密码失败。
所以有人/机器人正在努力尝试(每隔几个小时重复一次,每次大约尝试 20 次)登录......所以很明显我必须远程锁定对 Sql Sever 的访问。
我所做的是进入配置管理器,在 Sql Server 网络配置 -> Sql2008 协议以及 Sql Native Client 10.0 配置 -> 客户端协议中 - 我已禁用命名管道、TCP/IP(默认情况下为 VIA)。我已启用共享内存。我还在 Sql Server 服务中禁用了 Sql Server 浏览器。
现在我管理这些服务器上的数据库的唯一方法是通过远程桌面登录它们。
有人能确认这是否是阻止任何人恶意登录 Sql Server 的正确方法吗?(我不是 DBA 或安全专家 - 并且有数百篇文章建议各种不同的方法 - 但我希望这里的专家能够确认,或者,我所做的是否正确)
谢谢你,
标记
答案1
您的 SQL Server 应隐藏在防火墙后面。在互联网上打开它是很危险的。
你应该设置防火墙,并使用远程桌面或 VPN 连接。这样你就可以避免安全问题。
如果您总是从同一台计算机或一组较少的计算机进行连接,那么您也可以只允许您的 PC 进行连接。
答案2
首先要启用 Windows 防火墙。如果不通过某种 VPN,任何设备都无法从数据中心网络外部访问 SQL Server。
接下来将 sa 帐户重命名为其他名称。这样,除非知道用户名和密码,否则任何人都无法使用它连接到 SQL Server。
这两件事应该可以解决大多数潜在问题。
我建议你读一下我的安全书因为它包含大量有关如何正确保护 SQL Server 免受各种不同类型的攻击的信息。
仅供参考:每小时 20 次左右的尝试并不多。每分钟 10k 次,我会更担心。
答案3
您可以随时创建一个新的登录名,使其成为 sysadmin 角色的成员,然后拒绝 sa 的访问。