我正在对我工作中的系统进行安全审计,其中一项要求是加密通过公共/不受保护网络的所有流量。由于我们从办公室网络访问外部服务器之一上的 MySQL 数据库(通过端口 3306),因此需要加密与 MySQL 的连接。
它已经加密了吗?如果没有,我该如何加密它?
我正在使用的工具和脚本无法使用花哨的 SSH 端口转发或 VPN......这仍然可行吗?
答案1
不,默认情况下 mysql 流量未加密。设置 MySQL使用 OpenSSL按每个连接进行配置是最佳选择。如今,大多数二进制文件都支持 SSL,但很容易检查您的版本是否支持 SSL。摘自文档:
要检查服务器二进制文件是否使用 SSL 支持进行编译,请使用 --ssl 选项调用它。如果服务器不支持 SSL,则会发生错误:
shell> mysqld --ssl --help 060525 14:18:52 [ERROR] mysqld: unknown option '--ssl'
答案2
默认情况下,MySQL 不加密其客户端/服务器通信:
您可以设置 MySQL 以接受通过 SSL 的连接并要求用户使用 SSL。以下是 SSL 设置指南:
MySQL 8: