mysql数据库的一些安全配置( 二 )


为了移除和禁用这个文件 , 应将日志发送到/dev/null 。
$export MYSQL_HISTFILE=/dev/null
上述命令使所有的日志文件都定向到/dev/null , 你应当从home文件夹移除.mysql_history:$ rm ~/.mysql_history , 并创建一个到/dev/null的符号链接 。
11、安全补丁
务必保持数据库为最新版本 。因为攻击者可以利用上一个版本的已知漏洞来访问企业的数据库 。
12、启用日志
如果你的数据库服务器并不执行任何查询 , 建议你启用跟踪记录 , 你可以通过在/etc/my.cnf文件的[Mysql]部分添加:log =/var/log/mylogfile 。
对于生产环境中任务繁重的MySQL数据库 , 因为这会引起服务器的高昂成本 。
此外 , 还要保证只有root和mysql可以访问这些日志文件 。
错误日志
务必确保只有root和mysql可以访问hostname.err日志文件 。该文件存放在mysql数据历史中 。该文件包含着非常敏感的信息 , 如口令、地址、表名、存储过程名、代码等 , 它可被用于信息收集 , 并且在某些情况下 , 还可以向攻击者提供利用数据库漏洞的信息 。攻击者还可以知道安装数据库的机器或内部的数据 。
MySQL日志
确保只有root和mysql可以访问logfileXY日志文件 , 此文件存放在mysql的历史目录中 。
13、改变root目录
Unix操作系统中的chroot可以改变当前正在运行的进程及其子进程的root目录 。重新获得另一个目录root权限的程序无法访问或命名此目录之外的文件 , 此目录被称为“chroot监狱” 。
通过利用chroot环境 , 你可以限制MySQL进程及其子进程的写操作 , 增加服务器的安全性 。
你要保证chroot环境的一个专用目录 , 如/chroot/mysql 。此外 , 为了方便利用数据库的管理工具 , 你可以在MySQL配置文件的[client]部分改变下面的参数:
[client]
socket = /chroot/mysql/tmp/mysql.sock
14、禁用LOCAL INFILE命令
LOAD DATA LOCAL INFILE可以从文件系统中读取文件 , 并显示在屏幕中或保存在数据库中 。如果攻击者能够从应用程序找到SQL注入漏洞 , 这个命令就相当危险了 。下面的命令可以从MySQL控制台进行操作:
> Select LOAD_FILE("/etc/passwd");
该命令列示了所有的用户 。解决此问题的最佳方法是在MySQL配置中禁用它 , 在centos中找到/etc/my.cnf或在Ubuntu中找到/etc/mysql/my.cnf , 在[mysqld]部分增加下面一行:set-variable=local-infile=0 。搞定 。
当然 , 唇亡齿寒 , 保护服务器的安全对于保障MySQL数据库的安全也是至关重要的 。服务器的安全对于数据库来说可谓生死攸关 。




推荐阅读