我在 Amazon EC2 服务器上托管了 mysql 数据库,我想远程访问它并对其进行更改。由于我没有静态 IP,因此无法在防火墙中允许特定 IP 安全访问端口 3306。
还有其他方法可以从远程机器安全地打开 3306 吗?一种解决方案是通过 ssh 隧道传输端口 3306,那么我们还有其他安全访问解决方案可以访问 3306 吗?
谢谢
答案1
SSH 隧道可能是最容易设置的选项,因为它不需要更改 MySQL 配置。它与使用 MySQL 内置的 SSL 支持一样安全。
从你的工作站,只需运行:
$ ssh user@host -L3306:localhost:3306
然后连接到 localhost:3306,一切就绪。您可能需要为要连接的用户添加授权。
答案2
您可能会发现 MySQL SSL 文档很有用:
http://dev.mysql.com/doc/refman/5.0/en/secure-connections.html
对于您来说,我建议至少使用服务器端 SSL 来保护您的密码和数据,但使用(服务器上自签名和受信任的)客户端 SSL 证书也可能不是一个坏主意。
我通常不建议使用基于主机的身份验证或基于主机的 ACL 来保护您与任何事物的连接,因为 IP(以及某些人使用的 DNS 名称!)可能会被欺骗和劫持,而且您不需要对受信任的客户端拥有足够的管理访问权限就可以对其进行充分的攻击,而且通常这些事情比破解相当长的私钥更容易做到。此外,如果您不使用 SSL,您就很容易受到流量嗅探攻击。