出于安全原因更改 postgresql 服务器的端口

Ste*_*and 4 postgresql security

出于安全原因,更改 Microsoft Sql Server 的端口是很常见的。此处讨论的主题是更改 SQL Server 端口真的那么安全吗?

我的问题是:这也适用于 PostgreSQL 吗?还是不相关?

Cra*_*ger 5

意见各不相同,但在我看来,在任何不供公众使用的 Internet 公开服务上使用非默认端口有点有用。改变你的端口是不是安全。它在正常操作中绝对不会增加安全性,如果您的安全性已经因发现远程可利用的安全漏洞而受到损害,则它的用处很小。充其量它是一种延迟和缓解选项,可让您在蠕虫利用它之前修补安全漏洞的机会略高。

使用非默认端口不会保护您免受漏洞利用或任何类型的针对性攻击。它可能有助于减少简单的蠕虫或随意的广泛扫描工作尝试利用您服务中的安全漏洞的机会,但它不会减慢任何对您的系统感兴趣的人的速度,特别是为了心跳。

请注意,PostgreSQL 没有与 MS SQL Server 相同的严重远程可利用安全漏洞的历史。这并不意味着它永远不会在其中或在插件身份验证机制(如 Kerberos)中存在可远程利用的漏洞,因此您应该始终为这种可能性做好准备。

对于实际的安全性,您需要考虑:

  • 限制与受信任机器的连接。如果您的数据库位于仅包含其自身和应用程序服务器的 VLAN 上,那么使用端口就毫无意义。同样,如果您不需要将数据库暴露在 Internet 上,请确保它不在公共主机上运行,​​或者至少将其设置为仅绑定到内部 IP 地址并将其防火墙关闭。

  • 禁止明文身份验证。至少使用 SSL,如果不是 Kerberos 或其他中等强度的协议。

  • 强或多因素身份验证;这些用户名与密码相同的业务都没有。

  • 确保您的应用程序从不使用超级用户角色,并且它们只对与之交互的数据库对象拥有最少的权限。除非绝对必要,否则您的应用程序不应与拥有数据库或其表的用户/角色连接。GRANT他们所需的最低权利。

  • 禁止超级用户角色远程连接 pg_hba.conf

  • IP 连接限制。如果机器的所有客户端都使用特定的 ISP,请使用防火墙断开来自您知道可能使用的 IP 网络块外部的连接。你也可以这样做pg_hba.conf,但如果你在防火墙中这样做,你甚至会阻止他们与 Pg 握手。

  • ......还有更多。网上有很多关于锁定和保护 Pg 的内容。例如,请参阅Depesz 的文章、Bruce Momjian 的演示文稿这篇 DeveloperWorks 文章

出于类似的原因,我更改了所有机器上的公共 SSH 端口。它不会阻止任何人,但它可能会稍微减慢自动攻击和蠕虫的速度。更重要的是,它减少了我系统日志中的大量扫描垃圾邮件,使日志再次变得有用。