内容纲要
概要描述
用户在进行安全扫描时,可能会扫描到集群中MySQL数据库用户无需密码即可登录,且该MySQL端口为3308。这种情况就说明是Manager数据库的问题,且通常见于TDH 5.X版本。
详细说明
问题复现
要验证是否存在该问题,可先SSH登录Manager Server所在服务器(即Manager 8180页面的IP地址或主机名)。
然后在Manager Server所在服务器中,执行以下命令验证是否可无密码登录。其中IP地址改为Manager自身的IP地址。
mysql -h 172.22.27.11 -utranswarp -P3308
如果没有出现ERROR,而是直接进入了MySQL命令行,那么就说明该数据库存在无密码登录的风险。
问题原因
该问题是由于数据库的mysql.user
表中存在空密码记录导致的。
使用root
用户查看mysql.user
表。
mysql -h 172.22.27.11 -uroot -P3308
然后执行以下SQL语句查看。
select host, user, password from mysql.user;
发现该表中确实含有password
为空的记录。
在这个例子中,root
用户和transwarp
用户均存在无密码登录的风险。
问题解决
解决这个问题方法就是修改mysql.user
表。
根据上面查看的mysql.user
表中的信息,批量更新password
为空的字段。
update mysql.user set password = '<修改为实际的password值,与其他记录保持一致即可>' where password = '';
然后刷新权限即可。
flush privileges;