【惊魂一刻!我的MySQL数据库被黑客洗劫一空,原因竟是我大意设置了外网访问权限!对方索要比特币,这黑客邮箱简直让人毛骨悚然:duan00192@tutanota.com】😱💥赶紧检查你的数据库安全设置,保护好自己的数据资产吧!#网络安全# #数据库防护# #比特币风险#
黑客利用了外网访问权限,获得了对MySQL 数据库的未经授权的访问。这是一个非常常见的攻击方式,黑客可以使用各种手段来扫描互联网,寻找暴露在外的服务器和数据库,然后利用漏洞或弱密码等漏洞进行攻击。
解决方案
1、mysql数据库设置指定IP访问
我的数据库是mysql8
在数据库当中有mysql库
当中有user表,将对应的ip地址和用户添加到表当中就可以设置指定用户访问数据库
%分号代表任意用户访问
复制一行设置指定IP访问
保存好之后刷新权限即可
flush privileges;
2、禁用默认的 root 用户:
MySQL 的默认 root 用户没有设置密码,因此黑客很容易地连接到 MySQL 并删除数据库。为了避免这种情况,可以将 root 用户的密码设置为一个强密码,并禁用默认的 root 用户。
在 MySQL 中,禁用默认的 root 用户可以通过以下步骤完成:
打开 MySQL 客户端,并连接到你的 MySQL 服务器。
登录后,执行以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
这将为 root 用户设置一个密码。将 your_password 替换为你想要使用的密码。
你可以创建一个新的具有 root 权限的用户
CREATE USER 'new_root'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'new_root'@'localhost';
执行以下命令来禁用 root 用户
3. 执行以下命令来禁用 root 用户
这将删除 root 用户。请注意,这将永久删除 root 用户,并且无法恢复。因此,在执行此操作之前,请确保你已保存所有必要的数据库和数据。
重新启动 MySQL 服务以使更改生效:
sudo systemctl restart mysqld
或者,如果你使用的是 Systemd,请运行以下命令:
sudo systemctl restart mysqld
现在,root 用户已被禁用,你需要使用其他用户名和密码进行登录
3、监控数据库
要启用MySQL操作日志记录的功能,您可以使用以下命令:
SET GLOBAL log_output = 'FILE';
这将将MySQL日志的输出设置为文件。接下来,您可以使用以下命令查询操作日志信息:
SHOW VARIABLES LIKE 'log_output_file';
此命令将返回MySQL日志输出文件的详细信息。如果您想要查看日志文件的完整列表,请使用以下命令:
SHOW VARIABLES LIKE 'log_files';
如果您想要查看日志文件的详细信息,请使用以下命令:
SHOW VARIABLES LIKE 'log_output_file';
此命令将返回MySQL日志输出文件的详细信息。
4、备份数据库:定期备份数据库可以防止数据丢失和被删除。备份数据可以存储在本地或云端,并定期进行备份。
可以使用mysqldump命令来备份MySQL数据库。mysqldump是一个命令行工具,用于将MySQL服务器上的数据导出到一个SQL文件中。您可以使用crontab来定期执行mysqldump命令以备份数据库。以下是一些步骤:
打开终端并输入以下命令以编辑crontab文件:
编辑文件:
crontab -e
在文件末尾添加以下行,以便每天凌晨1点备份数据库:
0 1 * * * mysqldump -u [username] -p[password] [database_name] > /path/to/backup/file.sql
保存并退出文件。这将在每天凌晨1点自动执行mysqldump命令以备份数据库。