在防火墙中打开端口 3306 以进行外部 MySQL 连接是否安全

在防火墙中打开端口 3306 以进行外部 MySQL 连接是否安全

我想使用 TOAD、Navicat 或 HeidiSQL 之类的工具连接到由 ISP 托管的 MySQL DB。ISP 告诉我,MySQL 正在监听端口 3306,但硬件防火墙不允许外部连接访问(仅限本地主机)。我可以选择向他们提供 IP 以添加到防火墙,但这并不理想,因为我大部分时间在家或在路上工作,所以我的 IP 总是在变化。如果我打开它,是不是自找麻烦?除了将我的 IP 添加到 IP 表之外,还有什么措施可以降低风险吗?

答案1

通常,将 MySQL 访问限制为 IP 地址是一个好主意。可能会有一些安全问题,但好的防火墙应该可以缓解其中的一些问题。他们必须为您创建一个额外的 MySQL 用户,因为 MySQL 不允许每个用户有多个主机(除非有通配符)。您可以请求多个用户,每个您要连接的主机一个,甚至可以请求部分主机(例如 %.google.com)。

另一种解决方案是从您的机器创建一个 ssh 隧道,以便您可以本地连接。

这是一篇有关如何使用 MySQL 创建 ssh 隧道的好文章。

通过 SSH 远程访问您的 MySQL 服务器

答案2

请勿打开 3306。

相反,执行其他服务器所做的操作:打开端口 22 进行安全ssh连接,然后登录后,本地连接到 mysql。

答案3

虽然您可以通过非常小心地授权和要求 SSL 来保证身份验证的安全。但您无法防范可能被利用的潜在未被发现的漏洞。

一些 SQL 客户端有 SSH 隧道选项,这是一个更好的主意。

答案4

既然您提到了 Navicat,那就看看它的 HTTP 隧道功能吧。如果您隐晦地命名/定位该隧道端点并对文件本身使用 HTTP 身份验证(除了 MySQL 身份验证),则可以消除除最有针对性的攻击之外的所有攻击。

相关内容