不安全的MySQL'root'@'localhost'帐户远程访问?

一点背景:我们刚才有我们的PBX系统被黑客入侵。 服务器本身似乎是安全的(没有logging未经授权的控制台访问 – SSH等),但不知何故,黑客设法注入一个新的pipe理用户到PBX软件(FreePBX,由MySQL支持)。 Apache日志意味着黑客设法添加用户而不使用Web界面(或Web界面中的任何漏洞)。

现在,我已经发现MySQL运行没有根密码(!!),并公开绑定到外部IP地址(显然,我现在已经locking了这个)。 但是,MySQL中唯一的根级用户是'root'@'localhost''root'@'127.0.0.1' ,这两个用户只能在本地访问。

所以,我的问题是这样的:

有没有欺骗连接到MySQL的方法,以便它允许从远程IP地址连接到'root'@'localhost'用户,而不在本地运行任何其他利用?

作为参考,该框是运行Mysql 5.0.95的Centos 5(Linux 2.6.10)。

没有。

如果您不是来自本地系统,MySQL将永远不会将您login到具有localhost127.0.0.1主机规范的用户。 请注意,这也包括auth bypass漏洞,CVE 2012-2122; 密码比较可能被欺骗,但主机比较不是。

你需要系统上的某些东西来代理,以“欺骗”源主机检查。 想到像phpmyadmin,或者像在MySQL TCP端口前面运行的HAProxy这样的负载平衡器,

名称root是默认创build的,非常有名。 在MySQL权限系统中,字面值root没有任何意义。 因此,不需要继续使用用户名root

您应该将root用户名更改为其他名称,以便外部世界无法轻易识别(猜测),这将减less黑客行为。

例如:如果你有一个作为root @ localhost的用户,那么每个人都知道这个用户,因此黑客会尝试连接它,你应该把它admin_db_nameadmin_db_name @ localhost这样的特定的东西,以获得更好的安全性。

定期监视一个名为Aborted_connects的状态variables,以知道Refused连接到你的MySQL服务器,在Flush status;之后它应该是0 Flush status; 命令,不应该进一步增加。

显示“Aborted_connects”状态;

“不logging未经授权的访问”是否包含失败login尝试? 如果不是,则可能是CVE 2012-2122 。

当在特定环境中运行某些memcmp函数的实现时,(MySQL)允许远程攻击者通过反复validation相同的不正确的密码来绕过validation,最终由于未正确检查而导致令牌比较成功返回值。