您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > MySQL数据库安全配置
MySQL数据库安全配置规范2010年11月第1章概述1.1适用范围本规范适用于中国电信通信网、业务系统和支撑系统的MySQL数据库。本规范明确了MySQL数据库安全配置方面的基本要求。第2章安全配置要求2.1账号编号:1要求内容以普通帐户安全运行mysqld,禁止mysql以root帐号权限运行,攻击者可能通过mysql获得系统root超级用户权限,完全控制系统。操作指南:1、参考配置操作可以通过在/etc/my.cnf中设置:[mysql.server]user=mysql2、补充操作说明检查方法:1、判定条件禁止以root账号运行mysqld;2、检测操作检查进程属主和运行参数是否包含--user=mysql类似语句:#ps–ef|grepmysqld#grep-iuser/etc/my.cnf编号:2要求内容应按照用户分配账号,避免不同用户间共享账号操作指南1.参考配置操作//创建用户mysqlmysqlinsertintomysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject)values(localhost,pppadmin,password(passwd),'','','');这样就创建了一个名为:phplamp密码为:1234的用户。然后登录一下。mysqlexit;@mysql-uphplamp-p@输入密码mysql登录成功2.补充操作说明检测方法1.判定条件不用名称的用户可以连接数据库2.检测操作使用不同用户连接数据库编号:3要求内容应删除或锁定与数据库运行、维护等工作无关的账号操作指南1.参考配置操作DROPUSER语句用于删除一个或多个MySQL账户。要使用DROPUSER,必须拥有mysql数据库的全局CREATEUSER权限或DELETE权限。账户名称的用户和主机部分与用户表记录的User和Host列值相对应。使用DROPUSER,您可以取消一个账户和其权限,操作如下:DROPUSERuser;该语句可以删除来自所有授权表的帐户权限记录。2.补充操作说明要点:DROPUSER不能自动关闭任何打开的用户对话。而且,如果用户有打开的对话,此时取消用户,则命令不会生效,直到用户对话被关闭后才生效。一旦对话被关闭,用户也被取消,此用户再次试图登录时将会失败。检测方法检侧操作:mysql查看所有用户的语句输入指令selectuser();依次检查所列出的账户是否为必要账户,删除无用户或过期账户。2.2口令编号:1要求内容检查帐户默认密码和弱密码操作指南1.参考配置操作修改帐户弱密码如要修改密码,执行如下命令:mysqlupdateusersetpassword=password('test!p3')whereuser='root';mysqlflushprivileges;2.补充操作说明检测方法1.判定条件密码长度至少8位,并包括数字、小写字母、大写字母和特殊符号4类中至少3类。2.检测操作检查本地密码:(注意,管理帐号root默认是空密码)mysqlusemysql;mysqlselectHost,User,Password,Select_priv,Grant_privfromuser;2.3权限设置编号:1要求内容在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权限。操作指南1、参考配置操作合理设置用户权限2、补充操作说明检测方法1判定条件确保数据库没有不必要的或危险的授权2检测操作查看数据库授权情况:mysqlusemysql;mysqlselect*fromuser;mysqlselect*fromdb;mysqlselect*fromhost;mysqlselect*fromtables_priv;mysqlselect*fromcolumns_priv;回收不必要的或危险的授权,可以执行revoke命令:mysqlhelprevokeName:'REVOKE'Description:Syntax:REVOKEpriv_type[(column_list)][,priv_type[(column_list)]]...ON[object_type]{*|*.*|db_name.*|db_name.tbl_name|tbl_name|db_name.routine_name}FROMuser[,user]...2.4日志审计编号:1要求内容数据库应配置日志功能,操作指南mysql有以下几种日志:错误日志:-log-err查询日志:-log慢查询日志:-log-slow-queries更新日志:-log-update二进制日志:-log-bin在mysql的安装目录下,打开my.ini,在后面加上上面的参数,保存后重启mysql服务就行了。例如:#Enteranameforthebinarylog.Otherwiseadefaultnamewillbeused.#log-bin=#Enteranameforthequerylogfile.Otherwiseadefaultnamewillbeused.#log=#Enteranamefortheerrorlogfile.Otherwiseadefaultnamewillbeused.log-error=#Enteranamefortheupdatelogfile.Otherwiseadefaultnamewillbeused.#log-update=上面只开启了错误日志,要开其他的日志就把前面的“#”去掉1、补充操作说明showvariableslike'log_%';查看所有的log命令2、showvariableslike'log_bin';查看具体的log命令检测方法1判定条件启用审核记录对数据库的操作,便于日后检查。2检测操作打开/etc/my.cnf文件,查看是否包含如下设置:[mysqld]log=filename2.5安全补丁编号:1要求内容系统安装了最新的安全补丁(注:在保证业务及网络安全的前提下,经过实验室测试后)操作指南1、参考配置操作下载并安装最新mysql安全补丁,2、补充操作说明安全警报和补丁下载网址是判定条件确保数据库为企业版,并且安装了最新安全补丁。如果是不安全的社区版,建议替换为企业版(收费)2检测操作使用如下命令查看当前补丁版本:mysqlSELECTVERSION()2.6网络连接(可选)编号:1要求内容禁止网络连接,防止猜解密码攻击,溢出攻击和嗅探攻击。(仅限于应用和数据库在同一台主机)操作指南1、参考配置操作如果数据库不需远程访问,可以禁止远程tcp/ip连接,通过在mysqld服务器中参数中添加--skip-networking启动参数来使mysql不监听任何TCP/IP连接,增加安全性。2、补充操作说明检测方法1判定条件远程无法连接2检测操作#cat/etc/my.cnf#ps-ef|grep-imysql或从客户机远程telnetmysqlserver3306
本文标题:MySQL数据库安全配置
链接地址:https://www.777doc.com/doc-1397372 .html