龙空技术网

MYSQL数据库安全基线配置规范

寻优IT资料 312

前言:

当前同学们对“mysql安全配置方案”大约比较注重,咱们都想要学习一些“mysql安全配置方案”的相关知识。那么小编也在网络上汇集了一些关于“mysql安全配置方案””的相关知识,希望小伙伴们能喜欢,我们快快来学习一下吧!

mysql安全规范

1.用户账号与口令安全

默认帐号要求

删除默认数据库和默认帐号;

删除匿名账户;

应用系统应使用新建用户,不得使用系统默认账户。

参考配置操作

mysql> show databases;

mysql> drop database test; //删除数据库test

#use mysql;

#delete from db; //删除存放数据库的表信息,因为还没有数据库信息。

mysql> delete from user where not (user='root'or user=’应用系统专用账户’) ; // 删除初始非root的用户

mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User=''; //删除匿名账户;

mysql> flush privileges; //强制刷新内存授权表。

检测操作

mysql> show databases;

mysql> select * from user;

判定条件

只保留单个管理员root和应用系统专用账户;

2.数据库管理员帐号要求

修改root用户口令,删除空口令;

改变默认mysql管理员帐号;

禁止管理员帐号远程登录

参考配置操作

mysql> use mysql;

mysql> update user set password=password('root’spassword’) where user='root';

mysql> update user set user="newroot" where user="root";

mysql> update user set host =’’ where user = "newroot";

mysql> flush privileges;

检测操作

mysql> select * from user;

判定条件

管理员密码不为空,host应为空。

3.口令策略

参考配置操作

mysql> use mysql;

mysql> update user set password=password('newpassword’) where user='&username';

检测操作

mysql>select password from user;

判定条件

用户密码至少8位,由字母、数字和符号组成的不规律密码。

4.帐号权限策略

管理员之外的其它账户,不得拥有系统数据库的任何权限;不得拥有File,Grant,Reload,Shutdown,Process等权限中的任意一种。特别规定,数据库监控账户可以拥有Process权限

参考配置操作

收回File,Grant,Reload,Shutdown,Process等权限;

收回系统数据库权限

mysql>revoke file,grant,reload,shutdown,process from user;

mysql> flush privileges;

检测操作

mysql> show grants;

判定条件

普通账户不得拥有File,Grant,Reload,Shutdown,Process等权限。

5.安全配置

独立用户运行msyql

Mysql使用专用用户运行

参考配置操作

给MySQL数据库建立mysql组和属于该组的mysql账号

检测操作

id mysql

判定条件

mysql账号有单独属组

6.文件权限

MySQL的数据目录、日志目录,以及目录下的文件属主和属组只能是mysql账号,不能给其它账号任何权限

参考配置操作

# chown -R root /usr/local/mysql/ //mysql主目录给root

# chown -R mysql.mysql /usr/local/mysql/var //确保数据库目录权限所属mysql用户

检测操作

ls –la /usr/local/mysql

ls –la /usr/local/mysql/var

判定条件

数据目录、日志目录,以及目录下的文件属主和属组是mysql

7.命令历史记录保护(可选)

删除历史记录

参考配置操作

将.bash_history,.mysql_history文件置空。

ln -s /dev/null .bash_history

ln -s /dev/null .mysql_history

检测操作

cat .bash_history

cat .mysql_history

判定条件

.bash_history ,.mysql_history内容应为空。

8.日志与审计

启用日志功能

启用日志记录,记录日志信息

参考配置操作

在[mysqld] 中輸入

#log

log-error=/usr/local/mysql/log/error.log

log=/usr/local/mysql/log/mysql.log

long_query_time=2

log-slow-queries= /usr/local/mysql/log/slowquery.log

检测操作

mysql>show variables like 'log_%';。

判定条件

启用日志记录。

日志文件权限及审计

设备应配置权限,控制对日志文件读取、修改和删除等操作。

参考配置操作

# chown -R mysql.mysql /usr/local/mysql/var

# chmod -R go-rwx /usr/local/mysql/var

检测操作

ls –la /usr/local/mysql/var

判定条件

日志目录及目录下的文件属主和属组是mysql

9.其他内容

资源限制

参考配置操作

设置my.cnf文件的mysqld中的max_user_connections变量来完成

检测操作

grep max_user_connections my.cnf

判定条件

my.cnf文件中max_user_connections系统变量应为非零值

10.服务监听端口(可选)

在不影响应用的情况下,更改默认端口

参考配置操作

设置my.cnf文件的port变量来完成

检测操作

grep port my.cnf

判定条件

my.cnf文件中port 系统变量应不是3306

标签: #mysql安全配置方案