文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL数据库生产环境安全规范

2024-04-02 19:55

关注
一、MySQL服务器安全规范
1. 禁止应用直连DB,一般通过代理访问
2. 禁止DB公网访问。
3. 禁止生产和办公互通,需生产环境和办公环境隔离。
4. Linux系统初始化安全选项:
    1)、一些alias,写入/etc/profile,防止误操作
            alias c='clear'
            alias cp='cp -i'
            alias l.='ls -d .* --color=auto'
            alias ll='ls -l --color=auto'
            alias ls='ls --color=auto'
            alias mv='mv -i'
            alias rm='rm -i'
            alias MySQL='MySQL -U'
            其中MySQL -U,防止update和delete没有指定条件,拒绝操作。
    2)、删除linux操作日志信息、MySQL操作历史记录,避免被拖库。
            rm .bash_history .MySQL_history
            ln -s /dev/null .bash_history
            ln -s /dev/null .MySQL_history
    3)、避免"Too many open files"
            OS限制:cat /etc/security/limits.conf,MySQL用户能够打开65535个文件描述符
            MySQL soft nofile 65535
            MySQL hard nofile 65535
            my.cnf参数修改:
            open_files_limit = 65535
            innodb_open_files=65535
5. MySQL初始化配置安全选项:
    1)、合理规划目录结构,日志目录顺序写建议机械盘(binlog/slowlog/relaylog),数据目录随机写建议ssd。
    2)、MySQL相关目录设置专用MySQL组和用户,MySQL后台启动方式不能以root来启动,比如通过MySQL用户 。
    3)、设置bind-address为内网本机IP。
    4)、修改MySQL默认服务端口号,不推荐使用3306,不同业务设置不同的端口号。
    5)、通过修改max_connections和max_user_connections来控制最大连接数,过载保护。
    6)、启用safe-user-create,用户不能用GRANT语句创建新用户,除非用户有MySQL.user表的INSERT权限。
    7)、禁止local-infile=1,打开load data local file权限,避免数据泄漏和黑客攻击。
    8)、禁止skip-grant-tables启动,防止MySQL绕过权限系统
    9)、配置加上skip-name-resolve,防止主机名不被解析。
    10)、禁止skip-networking,其它机器不能使用tcp/ip连接。
    11)、禁止symbolic-links=1,关闭软链接功能。

二、MySQL帐号管理安全策略和MySQL权限相关的系统表:
1. MySQL.USER表
2. MySQL.DB表
3. MySQL.TABLES_PRIV表
4. MySQL.COLUMNS_PRIV表
自上而下,逐级验证,逐级进行账户权限的粒度控制
MySQL初始化:
1. 删除线上密码长度小于16的帐号。
2. 删除非root账户
3. 删除非localhost和127.0.0.1账户。
4. 删除test数据库
5. 账号区分:监控帐号、管理帐号、复制帐号、备份帐号、应用帐号
    1)、监控帐号(localhost和127.0.0.1):
        GRANT SELECT,PROCESS,REPLICATION CLIENT
    2)、备份帐号(localhost和127.0.0.1):
        GRANT SELECT,LOCK TABLES,RELOAD
    3)、复制帐号(对应主库ip):
        GRANT REPLICATION SLAVE,REPLICATION CLIENT
    4)、管理帐号(对应代理ip):
        GRANT ALL PRIVILEGES
    5)、root帐号
        root密码采用强密码策略,至少32位随机密码,推荐使用pwgen和makepasswd来生成32位随机密码,包含大小写、数字、字母、特殊字符。
        root帐号只授权localhost和127.0.0.1,不得授予%权限。
        root帐号建议每3个月修改一次,不同实例,设置不同的root密码。
    6)、应用帐号
        a. 应用帐号不得拥有Super、Create、Drop、File,Grant,Reload,Shutdown,Process等权限。
        b. 最小权限原则:select,insert,update,delete权限,禁止应用帐号权限设置为all。
        c. 应用帐号不得拥有系统数据库(MySQL)的任何权限,不能使用*.*来授权。
        d. 应用帐号只给所属应用的数据库授权,只给其所属应用的IP或代理授权。
        e. MySQL从库必须添加read-only,只给select权限,严禁all,导致只读失效。
        f. 应用帐号密码策略同root,建议每3个月修改一次。

三、MySQL数据安全策略
1. 物理(xtrabackup)和逻辑(MySQLdump)相结合的备份策略,全备+增量+异地。
2. 数据库备份文件定期回放,定期验证备份的可恢复性。
3. 针对重要业务系统建立delay数据库或者采取Linux初始化时设置lvm策略,可快照闪回。
4. 假设有Binlog Server,遇到紧急情况可数据恢复。

附:MySQL命令行提示配置
MySQL -uroot -p123456 --prompt="MySQL-\\v->[\\r:\\m:\\s] [\\u@\\h:\\d] >"

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯