赞
踩
配置要求:配置ssl_key的路径
检测步骤:
执行以下命令查看是否配置ssl_key路径
show variables like 'ssl_key';
判断依据:检查是否配置ssl_key的路径并且由文件存在
配置要求:配置ssl_ca的路径
检测步骤:
执行以下命令查看是否配置ssl_key路径
show variables like 'ssl_ca';
判断依据:检查是否配置ssl_ca的路径,并且文件存在
配置要求:配置ssl_cert的路径
检测步骤:
执行以下命令查看是否配置ssl_cert路径
show variables like 'ssl_cert';
判断依据:检查是否配置ssl_cert的路径,并且文件存在
配置要求:数据库需要配置错误日志,以便于出现问题时更好分析原因和恢复
检测步骤:
执行以下命令查看是否配置错误、查询、二进制日志
- show variables like 'log_error';
- show variables like 'log_bin';
- show variables like 'log';
判断依据:检查数据库是否配置错误日志
参考配置操作:
mysql 有以下几种日志:
错误日志:log-error
查询日志log (可选)
慢查询日志:log-slow-queries (可选)
更新日志:log-update
二进制日志:log-bin
(1).如果/etc目录下没有my.cnf,可以执行如下命令创建一个mysql的配置文件(windows环境下为my.ini文件):
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
(2). vi /etc/my.cnf(windows环境下为my.ini文件)
确保有以上日志数据中非可选的的日志参数(log-error、log-update、log-bin),
保存后重启 mysql 服务就行了。
例如:
- #Enter a name for the binary log. Otherwise a default name will be used.
- log-bin=
- #Enter a name for the query log file. Otherwise a default name will be used.
- #log=
- #Enter a name for the error log file. Otherwise a default name will be used.
- log-error=
- #Enter a name for the update log file. Otherwise a default name will be used.
- log-update=
注:上面只开启了部分日志,要开启其他的日志就把前面的""#""去掉,
请务必在""=""后添加日志的路径及日志文件名"
(3).重启mysql服务.
配置要求:移除测试数据库test
检测步骤:执行以下命令查看是否存在test数据库
mysql>SHOW DATABASES like 'test';
判断依据:检查是否移除test数据库
参考步骤:
移除test数据库,使用管理员,执行如下命令:
mysql>DROP DATABASE test;
配置要求:禁止自动创建用户权限
检测步骤:
执行以下命令查看是否配置禁止自动创建用户自动授权
mysql>select @@global.sql_mode;
判断依据:检查是否存在NO_AUTO_CREATE_USER
参考步骤:
方法1:
(1).以管理员用户登录数据库,执行如下命令:
>set global sql_mode='NO_AUTO_CREATE_USER';
方法2:
(1).如果/etc目录下没有my.cnf,可以执行如下命令创建一个mysql的配置文件(windows环境下为my.ini文件):
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
(2).编辑my.cnf文件在[mysqld]中加入如下配置语句:
sql_mode=NO_AUTO_CREATE_USER
配置要求:不应存在匿名帐号和无关帐号
检测步骤:
执行以下命令查看是否存在匿名账号
select count(*) from mysql.user where user = '';
判断依据:
1.如果【不用名称的用户】可以连接数据库,证明存在匿名帐号,需要按照加固方案手动删除此匿名帐号
2.根据业务要求, 查看是否包含【无关帐号】,存在的话,需要手动删除此帐号
参考配置操作:
(1).以管理身份登录数据库执行如下语句:
mysql>select * from mysql.user where user='';
(2).对于查询到的用户使用一下步骤进行删除:
DROP USER语句用于删除一个或多个MySQL账户。要使用DROP USER,必须拥有mysql数据库的全局CREATE USER权限或DELETE权限。账户名称的用户和主机部分与用户表记录的User和Host列值相对应。使用DROP USER,您可以取消一个账户和其权限,操作如下:
DROP USER user;
该语句可以删除来自所有授权表的帐户权限记录。
补充操作说明:DROP USER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。
配置要求:数据库密码存放是以hash加密的结果存放的
检测步骤:
使用如下命令查看是否存在未加密的数据库密码
mysql>select count(*) from mysql.user where length(password) < 41 and password!='';
判断依据:检查数据库用户密码的长度,一般为41位
参考步骤:
系统密码默认是加密的,如果存在未加密的账号,可以修改其密码:
mysql>update mysql.user set Password='<password>' where User='<username>';
配置要求:修改数据库管理员root的名称
检测步骤:
使用以下命令查看是否修改root用户名称
mysql>select count(*) from mysql.user where user = 'root';
判断依据:检查用root用户是否可以登录数据库
参考步骤:
(1).修改数据库root用户的名称,进入MYSQL:
#mysql -u root -p
(2).选择需要操作的数据库
mysql>use mysql;
(3).修改用户名
mysql>update mysql.user set user="新用户名" where user="旧用户名";
配置要求:要求使用ssl连接
检测步骤:
执行以下命令查看是否使用ssl连接
show variables like 'have_openssl';
判断依据:have_openssl的值为YES则合规,否则不合规.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。