【问题标题】:Connecting to Internal MySQL Server连接到内部 MySQL 服务器
【发布时间】:2020-07-29 04:41:43
【问题描述】:

我有一个 Node.JS Express API 应用程序,它托管在云中的 Heroku 上。我想查询一个 MySQL 数据库。

问题在于,该数据库托管在具有专有信息的安全 LAN 上。我们不想将此数据库公开给公众。这种事情的理想模式是什么?

我有一个静态代理 IP,如果可能的话,我正在考虑将其列入 MySQL 服务器的白名单。我认为引入另一个层,如 VPN 或 SSH 是行不通的。

【问题讨论】:

  • 你能不能只使用防火墙——允许你的应用服务器的 IP?
  • 在发布之前,总结问题并提供详细信息和示例来描述您尝试过的内容。

标签: mysql node.js database security


【解决方案1】:

我有一个静态代理 IP,如果可能的话,我正在考虑将其列入 MySQL 服务器的白名单

MySQL 确实允许将 IP 列入白名单。这是可能的。

但是,您可以创建从本地系统到服务器的 SSH 隧道。 SSH 隧道可以为您提供加密的 SSH 连接。而不是使用基于密码的 SSH,更好的方法是使用基于密钥的加密

您需要做的是生成一个公共身份验证密钥并将其附加到远程主机 ~/.ssh/authorized_keys 文件中。最好禁用基于密码的身份验证,只允许基于密钥的 ssh 连接。

如果你需要一些步骤来实现这一点,我也可以列出来。

【讨论】:

  • 嗯..但是你不觉得通过 SSH 隧道(来自 Node Express)有点尴尬吗?它正在引入另一个可以减慢客户请求和想法的层?
  • SSH 隧道确实比较慢。我从安全角度推荐它,因为 OP 没有提到连接响应时间。如果安全性和响应时间是因素,那么我建议使用 stunnel 和/或 openVPN。由于底层 UDP 的使用,open VPN 具有更好的优势。
猜你喜欢
  • 1970-01-01
  • 2014-10-29
  • 1970-01-01
  • 2017-08-21
  • 2018-03-05
  • 2017-03-14
  • 2021-12-17
  • 1970-01-01
  • 2015-01-21
相关资源
最近更新 更多