七步让您的MySQL服务器更安全( 二 )


4、删除匿名用户您在保持默认设置情况下去安装MySQL时,会产生一些匿名用户 。显然,您需要删除或阻止他们对于数据库的访问 。对于MySQL服务器的安全而言,您应该留意从如下查询中获得的响应:
复制
SELECT * FROM mysql.user WHERE USER="";
# Example Output
Empty set (0.001 sec)
对于查询到的结果,您应当立即删除这些匿名用户 。例如,如果在名为“localhost”的数据库环境中有一个名为“anonuser”的匿名帐户,那么您就可以使用如下命令来删除之:
复制
DROP USER 'anonuser'@'localhost';
5、检查MySQL的本地文件权限
假设您是一名数据库管理员,想检查一周前的数据 。您可能必须通过SSH,连接到数据库服务器,并更改所需的MySQL文件 。在执行此操作的过程中,如果您使用Linux的root用户权限,那么数据文件的所有权和查询权限就发生了更改 。
为了避免此类情况,您需要查看/var/lib/mysql目录,以检查授予权限的状态,并通过如下命令,审查所有文件的所有者是否为MySQL用户 。
复制
sudo ls -al /var/lib/mysql

七步让您的MySQL服务器更安全

文章插图
显然,此类文件的读写权限应该只被分配给MySQL用户,而其他用户不应具有任何权限 。
6、使用MySQL SSL想象一下,在ABC地区,有许多不同的服务器,其中一台服务器一旦被恶意黑客接管了 。那么黑客将在ABC区域进行内部扫描 。通过这种方式,他可以收集到各个服务器的信息 。
如果他在此过程中检测到MySQL服务器,那么就可以对目标服务器发起中间人攻击(MitM) 。这意味着他们可以窃取连接到该服务器的应用和用户之间的会话信息 。避免这种情况的一种最佳方法是在MySQL服务器上启用SSL 。
7、日志和历史文件您可以使用MySQL日志来分析和查找各类错误 。如下所示,您可以通过进入my.cnf文件,来编辑日志的保存位置 。
复制
# /etc/mysql/my.cnf
[mysqld]
log =/var/log/mylogfiles
您可以按需更改mylogfiles的名称或位置 。而当您在Linux终端上连接到MySQL服务器,并键入各种命令时,各种查询将被保存在mysql_history文件中 。如果运行以下命令,您将可以在MySQL终端中看到正在使用的查询信息:cat ~/.mysql_history 。
如果您不想提供有关自己在服务器内部进行查询的类型等信息,则可以通过如下命令删除该文件的内容 。
复制
sudo echo "cleaned" > ~/.mysql_history
在完成后,您可以通过再次运行上述命令,去检查文件的内容 。
8、得数据库者得系统无论属于哪个领域的应用,由于数据库里可能存放着包括:客户信息、银行帐户和账号密码等数据,它们都是恶意攻击者想尽一切办法要获得的信息 。因此,无论是数据库开发人员、还是管理人员,都至少需要了解他们在渗透测试中可能涉及到的基础知识 。希望上述向您介绍的七步加固MySQL服务器安全的建议,能够助您一臂之力 。
原文链接:https://www.makeuseof.com/mysql-database-security-checklist/
译者介绍
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验 。




推荐阅读