mysql-proxy 明文密码

我正在运行 MySQL proxy,我有一个带有 read_auth() 函数的 LUA,但是在认证期间传递的密码是已哈希的(正如预期的那样)。

我需要以我可以使用和发布的格式获得它们,因此是明文。在 MySQL 客户端上启用明文插件没有效果,我怀疑 MySQL proxy 不会要求客户端以明文发送它,所以默认为哈希。

因此,基本上:您有任何想法,我如何能够在 MySQL proxy 的 read_auth() 函数中获得清晰的身份验证详细信息吗?

注意:我的终极目标是使用 LDAP 进行身份验证,但是我能够获得密码(已哈希或未哈希)的唯一方法是实际绑定到 LDAP,不能通过搜索获得。

点赞
用户3159795
用户3159795

MySQL网络协议不允许以明文形式发送密码,你只能捕获加密版本。

然而,如果你尝试发送明文(从客户端到服务器),客户端端的明文插件应该会起作用...

从MySQL 5.5.27开始,为了让无意间使用该插件的可能性更小,客户端需要显式启用它。这可以通过以下几种方式实现:

设置LIBMYSQL_ENABLE_CLEARTEXT_PLUGIN环境变量的值以1、Y或y开头。这将为所有客户端连接启用插件。

mysql、mysqladmin和mysqlslap客户端程序支持--enable-cleartext-plugin选项,可以基于每次调用启用插件。

mysql_options() C API函数支持MYSQL_ENABLE_CLEARTEXT_PLUGIN选项,可以基于每个连接启用插件。此外,所有使用libmysqlclient和读取选项文件的程序可以通过在由客户端库读取的选项组中包含enable-cleartext-plugin选项来启用插件。

或者,还有一些其他的选项可用于通过LDAP进行身份验证。例如,你可以使用PAM身份验证插件,该插件允许你使用任何可用的PAM模块提供身份验证服务,而pam_ldap模块很容易进行配置。

你还可以尝试使用角色并将用户名映射到角色,以便有一些具有权限的角色和许多映射到这些角色的用户名。你可以在这里找到更多信息。

更多资源:

2017-02-08 23:07:38