如果您正在运行 Microsoft SQL Server,您可能已经意识到您的 SA 帐户容易受到暴力攻击。几乎每个连接到互联网的 SQL Server 都经常受到攻击。一旦黑客能够访问 SA(DBA)帐户,甚至是普通用户帐户,他们就能获得对服务器文件系统甚至其所连接网络上文件的完全访问权限。
通过检测登录失败并暂时阻止其 IP 地址,您很可能会让他们转而攻击其他服务器。我们可以创建防火墙规则,在攻击者尝试几次后将其阻止。
接下来小编将指导大家如何防止MSSQL上的暴力登录攻击,一起往下看吧。
防止 Windows 上 MSSQL 遭受暴力攻击的 3 个步骤
步骤1.打开登录审核
光纤手册记录开启服务登录认证审计,让SQL日志记录相关登录信息。




步骤2.分析日志文件
Microsoft SQL Server 会将失败的登录尝试记录到 SQL Server 日志中,该日志实际上是 SQL Server 日志目录中的 ERRORLOG 文件。例如,失败的登录尝试如下:
2021-09-16 00:21:04.95 登录错误:18456,严重性:14,状态:8。 2021-09-16 00:21:04.95 登录 用户“sa”登录失败。原因:密码与提供的登录名不匹配。[客户端:213.252.0.12]

步骤3.将异常IP添加到防火墙
将分析出来的危险IP源地址,例如1.1.1.1、1.1.1.2等,添加到本地防火墙。

为了保护您的 SQL Server 免受这些暴力攻击,您需要阻止此 IP 地址。您可能会想:“好吧,这很容易”。但是,如果有数千行日志怎么办?让我们使用 PowerShell 自动解析此日志并过滤要阻止的 IP。
简而言之,您将使用 PowerShell 来执行以下操作:
注:我们将开发一个小工具供客户使用,请关注此处的更新。
如何防止 Linux 上 SQL Server 的暴力登录攻击
在 Linux 系统上防止 SQL Server 遭受暴力登录攻击的方法与 Windows 类似。此外,Linux 更方便,因为有强大且免费的 fail2ban 工具可用。
Github 上有一个脚本(https://github.com/ToulisDev/fail2ban-action-mssql),可以使用 fail2ban 的 ban-action 将 fail2ban 中被禁止的 IP 地址添加到你的 MS SQL 服务器。(已在 Ubuntu 服务器上测试)