打开 MySQL 的端口到 Internet 不安全吗?

信息安全 防火墙 SSH mysql
2021-08-25 21:18:31

关于这个Server Fault 问题的共识似乎是为 MySQL 开放 3306 端口比使用 SSH 隧道访问 MySQL 更危险。

我认为使用强大的凭据可以保证 MySQL 的安全,特别是因为登录可以锁定到 USERS 表中的某些主机。

是否存在比 SSH 更不安全的 MySQL 连接,或者是否存在攻击 3306 的连接尝试可能会以某种方式压倒数据库的风险?

2个回答

如果不需要,则应将其关闭。

漏洞

您永远无法确定 MySQL 本身是否存在漏洞。这是一个DOS 攻击的例子(它不是唯一可能的攻击)。

允许对 MySQL 的非 IP 受限远程访问

允许远程访问 MySQL 本身并不是漏洞,但在某些场景中可以与其他漏洞结合使用。

例如,假设站点公开了一个配置文件:任何人都可以读取数据库连接凭据。如果攻击者还可以远程连接到数据库,则部分或全部数据会受到损害(其他攻击也可能存在,例如,如果允许进入 outfile 则执行代码)。但是如果远程连接是不可能的,攻击者可以对这些信息做很少的事情(假设密码没有在其他地方使用 - 例如 ssh - 以及)。

暴露的配置文件只是一个例子。再举一个例子,考虑盲目的 sql 注入:检索数据库密码相对较快,但检索整个数据库需要大量请求。因此,能够远程连接到它会非常有用。

允许 ip 受限远程访问 MySQL

(这只是推测)似乎可以使用 udp 连接到 MySQL,所以 ip spoofing 是可能的。我可以想象任何不需要直接反馈的攻击(例如通过 into outfile 将代码写入文件)都可能以这种方式工作(前提是获取了数据库凭据)。

加密

还应该考虑到默认情况下 ssh 是加密的,而 MySQL 不是(而且设置似乎不太容易)。这意味着如果提供对 MySQL 的直接访问,大多数用户将使用不安全的连接。

仅仅打开端口本质上并不比打开 SSH 端口更危险。

问题是任何可以使用该端口的应用程序都可能被黑客入侵,然后被用来破坏您的数据库。在客户端运行的任何东西本质上都是不可信的。