• 网站使用了新的音乐播放器,界面不能太美
  • Mysql的GTID
  • 全世界谁倾听你
  • 网站正式加入腾讯404公益
  • 霸气的藏獒
  • Apache为什么二级域名不能加载证书呢?
  • 将网站做了一个微信小程序了,等待审核!
  • 一张图完美讲述VIM命令
  • 生活中不简简单单是做对的事,更是要把对的事情做对,如果还有一层,那么应该尝试把错的事情也做对! by 尼古拉斯·拉布拉卡
  • 123木头人

MySQL数据库安全配置要求及操作指南

MYSQL IT敢客 8个月前 (09-16) 36716次浏览 已收录 0个评论 扫描二维码

MySQL 数据库

安全配置要求及操作指南

 

  1. 范围

    本规范适用于中国电信使用 MySQL
    数据库的设备。本规范明确了 MySQL 数据库安全

配置方面的基本要求,适用于所有安全等级。

由于版本不同,配置操作有所不同,本规范以 UNIX 平台上 MySQL5.0\5.1 为例,给出参考配置操作。  

  1. 缩略语

IP

Internet  Protocol

网络协议

  1. 安全配置要求

  1. 账号

编号:1

要求内容

以普通帐户安全运行 mysqld,禁止 mysql 以管理员帐号权限运行。

操作指南:

1、参考配置操作

Unix 下可以通过在/etc/my.cnf 中设置:

[mysql.server]

 

user=mysql

2、补充操作说明

检查方法:

  1. 判定条件各种操作系统下以管理员权限运行。

    Unix 下禁止以 root 账号运行 mysqld;

  2. 检测操作检查进程属主和运行参数是否包含–user=mysql 类似语句:

    # ps –ef | grepmysqld

    #grep -i user /etc/my.cnf

编号:2

要求内容

应按照用户分配账号,避免不同用户间共享账号

操作指南

1.参考配置操作

//创建用户

mysql> mysql> insert into  mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_sub  ject) values("localhost","pppadmin",password("passwd"),'','','');  这样就创建了一个名为:phplamp 密码为:1234 的用户。
然后登录一下。

mysql>exit;  

@>mysql -u phplamp -p  

@>输入密码  mysql>登录成功

2.补充操作说明


 

检测方法

1.判定条件

不用名称的用户可以连接数据库

2.检测操作

使用不同用户连接数据库

编号:3

要求内容

应删除或锁定与数据库运行、维护等工作无关的账号

操作指南

1.参考配置操作

DROP USER 语句用于删除一个或多个 MySQL 账户。要使用 DROP USER,

必须拥有 mysql 数据库的全局 CREATE USER 权限或 DELETE 权限。账户名称的用户和主机部分与用户表记录的 User 和 Host 列值相对应。

使用 DROP USER,您可以取消一个账户和其权限,操作如下:

DROP USER user;

该语句可以删除来自所有授权表的帐户权限记录。

 

2.补充操作说明要点:

DROP USER 不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。


 

检测方法

检测操作:

mysql 查看所有用户的语句  输入指令 select user();

依次检查所列出的账户是否为必要账户,删除无用户或过期账户。

注:无关的账号主要指测试帐户、共享帐号、长期不用账号(半年以上不用)等

  1. 口令

    编号:1

要求内容

检查帐户默认密码和弱密码

操作指南

1.参考配置操作修改帐户弱密码如要修改密码,执行如下命令:

mysql> update user set password=password('test!p3') where user='root'; mysql> flush privileges;

2.补充操作说明

检测方法

1.判定条件

密码长度至少 8 位,并包括数字、小写字母、大写字母和特殊符号 4 类中至少 3 类。 2.检测操作

检查本地密码:(注意,管理帐号 root 默认是空密码) mysql> use mysql;

mysql> select Host,User,Password,Select_priv,Grant_priv from user;


 

  1. 授权

编号:1

要求内容

在数据库权限配置能力内,根据用户的业务需要,配置其所需的小权限。

操作指南

  1. 参考配置操作

合理设置用户权限,撤销危险授权。

  1. 补充操作说明

检测方法

  1. 判定条件

确保数据库没有不必要的或危险的授权

  1. 检测操作

查看数据库授权情况:

mysql> use mysql; mysql> select * from user; mysql>select * from db; mysql>select * from host; mysql>select * from tables_priv; mysql>select * from columns_priv;

回收不必要的或危险的授权,可以执行 revoke 命令: mysql> help revoke Name: 'REVOKE'

Description:

Syntax:

REVOKE

priv_type [(column_list)]

     [, priv_type [(column_list)]] …

   ON [object_type]

       {

           *

         | *.*

         | db_name.*

         | db_name.tbl_name

         | tbl_name

         | db_name.routine_name

 

       }

   FROM user [, user] …

  1. 日志

编号:1

要求内容

数据库应配置日志功能,

操作指南

mysql 有以下几种日志:


错误日志: -log-err           查询日志: -log (可选)
慢查询日志: -log-slow-queries (可选)
更新日志: -log-update           二进制日志: -log-bin  

 

mysql 的安装目录下,打开 my.ini,在后面加上上面的参数,保存后重启 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=  

 

上面只开启了错误日志,要开其他的日志就把前面的"#"去掉

1
补充操作说明

show variables like 'log_%';查看所有的 log 命令

 

2
show variables like 'log_bin';查看具体的 log 命令

检测方法

  1. 判定条件

启用审核记录对数据库的操作,便于日后检查。

  1. 检测操作

打开/etc/my.cnf 文件,查看是否包含如下设置:

[mysqld]

log = filename

  1. 补丁

编号:1

要求内容

系统安装了 新的安全补丁
(注:在保证业务及网络安全的前提下,经过兼容性测试后)

操作指南

  1. 参考配置操作

下载并安装 新 mysql 安全补丁,

  1. 补充操作说明

安全警报和补丁下载网址是 http://www.mysql.com

检测方法

  1. 判定条件

确保数据库为企业版,并且安装了 新安全补丁。如果是不安全的社区版,建议替换为企业版(收费)

  1. 检测操作

使用如下命令查看当前补丁版本: mysql> SELECT VERSION()

  1. 网络连接

编号:1

要求内容

禁止网络连接,防止猜解密码攻击,溢出攻击和嗅探攻击。(仅限于应用和数据库在同一台主机的情况)

操作指南

  1. 参考配置操作

如果数据库不需远程访问,可以禁止远程 tcp/ip 连接, 通过在 mysqld 服务器中参数中添加 –skip-networking 启动参数来使 mysql 不监听任何 TCP/IP 连接,增加安全性。

  1. 补充操作说明

检测方法

  1. 判定条件远程无法连接

  2. 检测操作

    #cat /etc/my.cnf

    #ps -ef|grep -i mysql

    或从客户机远程 telnet mysqlserver 3306

  1. 可信 IP 地址访问控制

编号: 1

要求内容

通过数据库所在操作系统或防火墙限制,只有信任的 IP 地址才能通过监听器访问数据库。

操作指南

  1. 参考配置操作

执行命令:mysql> GRANT ALL PRIVILEGES ON db.*

·-> -> TO 用户名@'IP 子网/掩码';

只有通过指定 IP 地址段的用户才可以登录

  1. 补充操作说明

检测方法

  1. 判定条件

在非信任的客户端以数据库账户登陆被提示拒绝。

  1. 检测操作

用户从其它子网登录,将被拒绝

  1. 补充说明

  1. 连接数设置

要求内容

根据机器性能和业务需求,设制 大 小连接数。

操作指南

1、参考配置操作

编辑 MySQL 配置文件:my.cnf 或者是 my.ini [mysqld]配置段添加:

max_connections = 1000 保存,重启 MySQL 服务。

检测方法

1、判定条件

 
  1. 检测操作用命令:SHOW [FULL] PROCESSLIST 显示哪些线程正在运行

    mysql admin -uroot -p variables  

    输入 root 数据库账号的密码后可看到

    | max_connections | 1000 |

  2. 补充说明


IT 敢客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL 数据库安全配置要求及操作指南
喜欢 (6555)
[313176056@qq.com]
分享 (0)
IT敢客
关于作者:
“我所做的一切都是为了方便我的生活~~~“
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
EA PLAYER &

历史记录 [ 注意:部分数据仅限于当前浏览器 ]清空

      00:00/00:00