我有 ubuntu 服务器充当我的 php 网站的灯服务器。
mysql 服务器已安装并为 localhost 端口打开。
我已经阅读了有关如何通过 ssh 隧道连接到我的 mysql 服务器的信息。
但我不明白为什么这比直接为 Internet 端口打开 mysql 服务器更好。
无论哪种方式,黑客都可以暴力破解端口以获取密码。mysql 端口 (3306)(如果对公众开放)或 ssh(22)(如果使用隧道)。
那么为什么对 mysql(以及许多其他服务器应用程序)使用 ssh 隧道更好呢?
如果您使用 SSH 隧道,那么您的 SSH 和 MySQL 密码在通信期间都会被加密——以及通过隧道的所有数据。如果您没有使用 SSH 隧道并且没有使用 MySQL 的 SSL 支持,则没有加密,恶意第三方可能会使用数据包嗅探或其他恶意手段来窃听您的通信。
此外,如果您使用 SSH 隧道,那么如果远程机器的 SSH 密钥更改,您将收到警报。这不会发生在标准 MySQL 中,这意味着攻击者可以使用 IP 欺骗或中间人攻击来破坏/干扰/窃听您的通信。
有关更多信息,请参阅:
但我不明白为什么这比直接为 Internet 端口打开 mysql 服务器更好。无论哪种方式,黑客都可以暴力破解密码端口
简单的答案是,有一种文化相信 SSH 比 MySQL 的安全性更好。SSH 方法的支持者可能会争辩说 MySQL 的密码交换协议在过去已经受到损害,因此最好依赖 SSH。
不过你说得对。SSH 密码几乎和 MySQL 密码一样容易被暴力破解。
幸运的是,SSH 支持多种身份验证方法,密码只是其中之一。对于面向 Internet 的主机,我看到系统管理员完全禁用密码身份验证,而是选择更强大的方法,例如公钥身份验证。请参阅 sshd_config(5) 中的 RSAAuthentication,以及 ssh-keygen(1) 以获取有关公钥身份验证的更多信息。
希望这可以帮助!