避免使用 SQL Server 的默认端口仍然是最佳做法吗?

Jam*_*s D 21 security sql-server best-practices dynamic-ports

从历史上看,作为安全最佳实践的一部分,建议不要使用默认端口连接到 SQL Server。在具有单个默认实例的服务器上,默认情况下将使用以下端口:

  • SQL Server 服务 - 端口 1433 (TCP)
  • SQL Server Browser 服务 - 端口 1434 (UDP)
  • 专用管理连接 - 端口 1434 (TCP)

问题:

  • 这个建议还有用吗?
  • 是否应该更改上述所有端口?

Sea*_*ser 71

从历史上看,作为安全最佳实践的一部分,建议不要使用默认端口连接到 SQL Server。

那时是愚蠢的,现在仍然是愚蠢的。通过可以说是默默无闻的安全根本不是安全。

这个建议是否仍然相关

恕我直言,它从来没有相关性。出于某些合规目的需要它,因为起草这些合规性的人不明白他们在做什么,恕我直言。

是否应该更改上述所有端口?

我不会改变任何。


Tom*_*m V 12

即使通过默默无闻的安全性并不是真正的安全性,我也不会说没有任何情况下它有帮助。

如果攻击者想知道您的服务在哪里侦听,他们可以很容易地找到,但是在发生愚蠢的自动攻击的情况下,如果您更改了端口,您可能会很幸运。

我能记得它真正帮助的唯一时间是在SQL Slammer期间,SQL Server 2000 易受攻击,蠕虫通过生成随机 IP 并连接到默认的 SQL Server 浏览器端口来传播。

如果我没记错的话,当时官方建议更改端口,直到您可以修补服务器(因为没有立即可用的修补程序或因为您没有窗口)

要让该蠕虫进入您的网络,您需要将 SQL Server 连接到 Internet,而不是在防火墙后面,您不应该这样做,但无论如何,在这种特定情况下,非默认端口号可能会有所帮助。

但是,我确实同意,如果您有适当的安全措施,您添加的复杂性可能不会超过防止事故发生的可能性。


小智 9

从历史上看,作为安全最佳实践的一部分,建议不要使用默认端口连接到 SQL Server

不,它不是。一些被误导的人可能会这样描述它,但我已经从事安全工作 20 多年,更改默认端口一直是一种“如果您愿意,您可以这样做,有时在非常特定的情况下可能会提供一个针对某些非常具体的威胁提供一些额外的安全性”。

这个建议还有用吗?

在非常特殊的情况下,根据您的威胁模型和风险分析,在某些情况下,这可能是合理的建议。在绝大多数情况下,不,它不相关,也不是。


小智 8

是的,它仍然有用。

更改默认端口只有一个真正的目的:防御自动扫描/攻击,如果您的数据库服务器对可能会受到威胁的主机开放。

虽然这听起来没什么大不了的,但请记住:

  • 任何主机都可能受到威胁(或者您的数据库服务器可能由于某些错误而大量暴露在 Internet 上)
  • 那些日子里的大多数攻击都是自动攻击,其中许多只会尝试默认端口(因为瞄准低垂的果实是最有效的)。

因此,是的,虽然如果受到针对性攻击,它本身不会对您有多大帮助,但使用随机端口(和/或使其仅侦听随机 IPv6 地址)将使其不那么明显,从而至少给您更多时间在自动 0day 漏洞利用扫描攻击您之前升级(甚至可能完全保护您免受此类自动扫描本身!)

此外(这不仅有助于抵御所有自动攻击,还有助于抵御一些针对性攻击)当攻击者试图通过暴力端口扫描找到您的数据库端口来利用它时,它可以被检测到并防御(通过将攻击者 IP 范围列入黑名单) ,并在检测到某个内部主机作为攻击源时提醒管理员)

另请注意,更改服务器和客户端的默认端口(特别是如果它们是自动部署的)是微不足道的工作量,并且检测暴力扫描也很容易;所以你真的应该这样做(不仅仅是对于数据库服务器;但是对于所有由于可用性问题而设置它的开销并不令人望而却步的服务:比如80不建议更改 web 的默认端口,因为某些人(和机器人)会搞砸,世界各地的随机防火墙可能不允许建立连接。但 RDP 是很好的目标,例如非默认端口)