2013-08-26 137 views
2

我需要了解更多关于MySQL蛮力攻击的信息。我在我们的Linux服务器上看到了MySQL强力攻击,但是没有一台机器受到威胁。MySQL蛮力攻击

从这个 link,我想通过从另一台远程机器上使用telnet命令获取垃圾字符,这意味着3306端口对外部开放。我从这个 link想通了,如果我修改的/etc/my.cnf包括跳网络,它会阻止所有的端口3306

我的问题是外部连接,

我有一个运行的程序,它使用某个用户名和密码连接到MySQL服务器(我正在接受强力攻击)(用户名不是root)。如果我在my.cnf文件中包含上面的行(skip-networking),它会影响我当前正在运行的程序吗?

+0

这显然取决于你的程序是否通过网络联系到mysql服务器。 – arkascha

+4

您应该做的第一件事是锁定防火墙对服务器的访问。仅允许来自您的工作绝对需要的那些网络/地址的流量。阻止其他一切。 – arkascha

+0

您需要一个正确配置的防火墙来隔离您的内部服务与敌对方。 – SLaks

回答

4

规则#1:永远不会让您的MySQL端口在微风中摇摆不定。 MySQL中有一些错误已经使安全层无效并允许任意的远程代码执行。

你绝对必须锁定3306才能打开尽可能小的IP列表,即使如此,你仍然必须小心。默认情况下,MySQL不会对这些连接进行加密,因此理论上可以从这里获取认证信息。

更好的方法是为每台需要访问数据库的机器建立一个简单的SSH隧道,将远程机器连接到本地MySQL端口。

skip-networking具有绑定到127.0.0.1(localhost)的效果,这意味着它不会接受外部连接。这样更安全,但是如果没有一套严格的防火墙规则,您仍然处于危险之中。

+0

您是否可以链接到SSH隧道如何在实践中工作的一些细节?我在命令行中使用了SSH,但不知道从哪里开始使用SSH与mysql机器进行通信。我的意思是机器查询SQL(计算机A)SSH到运行mysql(计算机B)的服务器,现在A可以查询127.0.0.1:3306上的SQL数据库? – sradforth

+0

@sradforth准确地说。查找“SSH端口转发”或搜索[超级用户](http://superuser.com)。 – tadman

3

所以就像评论说你需要配置防火墙。编辑my.cnf文件与防火墙不同。

skip-networking选项基本上执行以下操作:根本不听侦听TCP/IP连接。所有与mysqld的交互都必须通过Unix套接字进行。强烈建议仅允许本地请求的系统使用此选项。由于您需要允许远程连接,因此应将此行从my.cnf中删除或将其置于注释状态。

请安装防火墙并确保只有您的机器可以连接到MySQL数据库。 Here是推荐的防火墙列表。