mysql-proxy明文密码

时间:2017-02-02 15:56:35

标签: mysql lua mysql-proxy

我运行了MySQL代理,并且我有一个带read_auth()函数的LUA,但是在验证期间传递的密码是经过哈希处理的(如预期的那样)。

我要求我们使用的格式可以使用并发布,因此明文。在MySQL客户端上启用明文插件没有任何效果,我怀疑MySQL代理并不要求客户端以明文形式发送它,因此默认为散列。

基本上:您对如何在MySQL代理的read_auth()函数中获取明文验证详细信息有任何想法吗?

注意:我的最终目标是使用LDAP进行身份验证,但是我获取密码的唯一方法(哈希是否哈希)是通过实际绑定到LDAP,无法通过搜索获得。

1 个答案:

答案 0 :(得分:8)

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模块来提供身份验证服务,there is a pam_ldap module that is easy to configure.

您还可以考虑使用角色并将用户名映射到角色,因此您将拥有一些具有权限的角色和许多映射到这些角色的用户名。你可以在这里找到更多相关信息。

更多资源: