远程用户试图访问 root mysqld

nul*_*nce 3 security linux brute-force-attacks

我刚刚查看了我的 syslog 文件,并注意到以下大量条目:

8 月 25 日 13:06:17 ssrv001 mysqld: 150825 13:06:17 [警告] 用户“root”@“61.160.232.48”的访问被拒绝(使用密码:是)

该 ip 是恶意的,因为除了我自己之外没有人对这台服务器具有 root 访问权限。我将删除 root mysqld 用户的远程访问权限,但这足以阻止此类事情的发生吗?

我也在考虑实施一些禁止来自多次发出无效请求的 IP 地址的连接的东西。

Max*_*rok 9

首先,我建议您只允许从本地主机以 root 身份登录到 mysql。如果您必须从另一台服务器连接到 mysql - 创建新用户并仅授予它所需的权限。

此外,您可以使用 fail2ban 或类似方法在多次连接尝试失败后将黑客 IP 添加到黑名单。

最后,您可以更改您的 mysql 端口以避免愚蠢的蛮力攻击。

在此处了解有关在 linux 上保护 MySQL dbs 的更多信息:如何在 Linux VPS 中保护 MySQL 和 MariaDB 数据库

更新: 我忘了 MySQL 有自己的工具来在登录尝试失败后阻止 IP。您可以在 mysql 配置文件中使用它:

max_connect_errors = 5;

但默认情况下,mysqld 会在 10 次连接错误后阻止主机。

在此处阅读更多相关信息:服务器系统变量 #sysvar_max_connect_errors和此处:主机“host_name”被阻止


小智 6

我与 Maxim 和 Knowhy 在一起,只允许从本地主机以 root 用户身份登录 MySQL。我会进一步允许所有用户登录本地主机或特定 ip。

以本地用户身份连接到远程 MySQL 服务器的方法是 ssh 隧道。

像这样的东西应该适用于 UNIX 系统:

ssh -fNg -L 9999:127.0.0.1:3306 user@yourhost.com
Run Code Online (Sandbox Code Playgroud)

这将启用客户端端口 9999 作为远程 yourhost.com:3306 端口的“隧道”。

对于 Windows 系统,Putty 应该可以解决问题。看看这个:

http://www.ytechie.com/2008/05/set-up-a-windows-ssh-tunnel-in-10-minutes-or-less/

大多数当前的 MySQL 图形客户端都允许隧道连接,例如 MySQL Workbench,效果很好:

https://www.mysql.com/products/workbench/